You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Edmund Wong <ed...@kdtc.net> on 2009/10/05 03:32:37 UTC

issue-3390-dev branch question

Hi,

I checked out issue-3390-dev branch and would like to apply
r39285's (gen-win.py modification) patch to it.  I can do it locally
of course.

Is there a point in getting it applied to the actual branch or
is the life-span of the branch too short to bother?

Thanks for any clarification in the matter.

Edmund

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403426

Re: Feature branches [was: issue-3390-dev branch question]

Posted by "C. Michael Pilato" <cm...@collab.net>.
Julian Foad wrote:
> C. Michael Pilato wrote:
>> Julian Foad wrote:
>>> That branch is a "feature branch" in terms of how we should merge to and
>>> from it. What this means is that we should from time to time "catch up"
>>> with changes that have been made on trunk, by merging all eligible
>>> changes from trunk to the branch.
>> It is not the case that we universally maintain feature branches in this
>> fashion, [...]
> 
> Oh... is it not?  I mean, it's the branch's "parent" branch that we
> catch up from, not always trunk, but in what other way do we consciously
> maintain a feature branch?

Sometimes we never sync the feature branch with the parent branch, and opt
to deal with conflicts only once (when merging back into the parent) rather
than at every sync opportunity.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403820

Feature branches [was: issue-3390-dev branch question]

Posted by Julian Foad <ju...@btopenworld.com>.
C. Michael Pilato wrote:
> Julian Foad wrote:
> > That branch is a "feature branch" in terms of how we should merge to and
> > from it. What this means is that we should from time to time "catch up"
> > with changes that have been made on trunk, by merging all eligible
> > changes from trunk to the branch.
> 
> It is not the case that we universally maintain feature branches in this
> fashion, [...]

Oh... is it not?  I mean, it's the branch's "parent" branch that we
catch up from, not always trunk, but in what other way do we consciously
maintain a feature branch?

- Julian

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403778

Re: issue-3390-dev branch question

Posted by "C. Michael Pilato" <cm...@collab.net>.
Julian Foad wrote:
> Edmund Wong wrote:
>> I checked out issue-3390-dev branch and would like to apply
>> r39285's (gen-win.py modification) patch to it.  I can do it locally
>> of course.
>>
>> Is there a point in getting it applied to the actual branch or
>> is the life-span of the branch too short to bother?
> 
> Hi Edmund.
> 
> That branch is a "feature branch" in terms of how we should merge to and
> from it. What this means is that we should from time to time "catch up"
> with changes that have been made on trunk, by merging all eligible
> changes from trunk to the branch.

It is not the case that we universally maintain feature branches in this
fashion, so I would strongly encourage branch maintainers to add
BRANCH-README files to their branches.  See
http://subversion.tigris.org/hacking.html#branch-readme-files for details,
and various uses of the files in our revision history for examples.

(And I say this knowing that I haven't done this myself for the
issue-3242-dev branch.  Will remedy that soonish.)

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403650

Re: issue-3390-dev branch question

Posted by Julian Foad <ju...@btopenworld.com>.
Ed wrote:
> Reading the hacking.html file, I noticed that it stated
> along the lines that the branches (esp. experimental ones) can be
> committed by anyone.  Is this the case here, or do I need some sort
> of committing permission set?  Or did I read wrong?

A branch can be created by anyone. If you want to edit an existing
branch, I would ask whoever started it or seems to be working on it.

- Julian

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2404189

Re: issue-3390-dev branch question

Posted by Edmund Wong <ed...@kdtc.net>.
Julian Foad wrote:
> The standard way to do this is "svn merge ^/trunk" on this branch.
> 
> As it has been six months without a catch-up, this merge is likely to
> produce quite a few conflicts. If the conflicts are difficult to
> resolve, you can revert the attempt and instead merge the changes in
> smaller batches, such as:
> 
>   svn merge ^/trunk@37500
>   <resolve>
>   svn ci -m "On the issue-3390-dev branch: catch up with trunk@37500."
> 
>   svn merge ^/trunk@38000
>   <resolve>
>   svn ci -m "On the issue-3390-dev branch: catch up with trunk@38000."
> 
>   svn merge ^/trunk
>   <resolve>
>   svn ci -m "On the issue-3390-dev branch: catch up with trunk."
> 
> Or, as there are only two changes on the original branch, an alternative
> and probably quicker way would be to delete the branch, re-create it
> from latest trunk, and then merge the original branch changes (r37080,
> r37644) into it.
> 

Thanks Julian.  Reading the hacking.html file, I noticed that it stated
along the lines that the branches (esp. experimental ones) can be
committed by anyone.  Is this the case here, or do I need some sort
of committing permission set?  Or did I read wrong?

Edmund

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403918

Re: issue-3390-dev branch question

Posted by Julian Foad <ju...@btopenworld.com>.
Edmund Wong wrote:
> I checked out issue-3390-dev branch and would like to apply
> r39285's (gen-win.py modification) patch to it.  I can do it locally
> of course.
> 
> Is there a point in getting it applied to the actual branch or
> is the life-span of the branch too short to bother?

Hi Edmund.

That branch is a "feature branch" in terms of how we should merge to and
from it. What this means is that we should from time to time "catch up"
with changes that have been made on trunk, by merging all eligible
changes from trunk to the branch.

The standard way to do this is "svn merge ^/trunk" on this branch.

As it has been six months without a catch-up, this merge is likely to
produce quite a few conflicts. If the conflicts are difficult to
resolve, you can revert the attempt and instead merge the changes in
smaller batches, such as:

  svn merge ^/trunk@37500
  <resolve>
  svn ci -m "On the issue-3390-dev branch: catch up with trunk@37500."

  svn merge ^/trunk@38000
  <resolve>
  svn ci -m "On the issue-3390-dev branch: catch up with trunk@38000."

  svn merge ^/trunk
  <resolve>
  svn ci -m "On the issue-3390-dev branch: catch up with trunk."

Or, as there are only two changes on the original branch, an alternative
and probably quicker way would be to delete the branch, re-create it
from latest trunk, and then merge the original branch changes (r37080,
r37644) into it.

- Julian

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403490

Re: issue-3390-dev branch question

Posted by Edmund Wong <ed...@kdtc.net>.
Hi,

I forgot to include the 'converted' test script.  Due to
my limited knowledge in shell scripts' equivalent commands
in Windows, I fixed the PWD environment setting.

@echo off
rem Batch file to test issue 3390.

set PWD=D:/other_projs/branches/issue-3390-dev
set REPOS=issue-3390-repos
set WC=issue-3390-wc

echo ### Removing old test data ...
rmdir /s %REPOS% %WC%

echo ### Creating repository ...
svnadmin create %REPOS%

echo ### Checkout out working copy ...
svn co file:///%PWD%/%REPOS% %WC%
cd %WC%

echo ### Creating some trunk stuff ...
svn mkdir --parents trunk/top/sub1 trunk/top/sub2
touch trunk/top/sub2/file
svn add trunk/top/sub2/file
svn ci -m "Add trunk stuff."

echo ### Adding a relative external on trunk/top/sub1, pointing to 
../sub2 ...
svn pset svn:externals "../sub2 sub2-ext" trunk/top/sub1
svn up
svn ci -m "Add relative external."

echo ### Making a branch from trunk ...
svn up
svn cp trunk branch
svn ci -m "Add branch."

echo ### Switching trunk to the branch ...
svn switch file:///%PWD%/issue-3390-repos/branch trunk

echo ### Checking URL on trunk/top/sub1 (should point to branch) ...
svn info trunk/top/sub1 | grep URL

echo ### Checking URL on trunk/top/sub1/sub2-ext (should also point to 
branch) ...
svn info trunk/top/sub1/sub2-ext | grep URL

cd ..
rem End of script

Edmund

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403503

Re: issue-3390-dev branch question

Posted by Edmund Wong <ed...@kdtc.net>.
Julian Foad wrote:
> Hi Edmund.
> 
> Developments on the trunk this year have been changing the WC format
> from time to time. It looks like you are creating a WC using one build
> of Subversion and then trying to access it using another build.

Hi Julian,

It certainly looks like I'm doing that, but I remember clearly
separating the issue-3390-dev branch and used a different
set of environment settings for the particular session.
I'll have to review the settings.

> 
>> D:\other_projs\branches\issue-3390-dev>svn --version
>> svn, version 1.7.0 (dev build)
>>     compiled Oct  5 2009, 17:01:05
> 
>> D:\other_projs\branches\issue-3390-dev>svn co 
>> file:///d:/other_projs/branches/issue-3390-dev/issue-3390-repos 
>> issue-3390-wc
>> ..\..\..\subversion\libsvn_subr\sqlite.c:570: (apr_err=200032)
>> svn: Schema format 14 not recognized
> 
> Did the "issue-3390-wc" subdirectory already exist before you ran this
> command? If so, it looks like it was created with a different build of
> Subversion from the one you're running now. If not, maybe you are using
> a bad build of Subversion that links the wrong libraries.
> 

Nope.  Every time I run the script, it deletes both the repos and
the wc directories.  So it can only be created by the current
session.

Edmund

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403508

Re: issue-3390-dev branch question

Posted by Julian Foad <ju...@btopenworld.com>.
Hi Edmund.

Developments on the trunk this year have been changing the WC format
from time to time. It looks like you are creating a WC using one build
of Subversion and then trying to access it using another build.

> D:\other_projs\branches\issue-3390-dev>svn --version
> svn, version 1.7.0 (dev build)
>     compiled Oct  5 2009, 17:01:05

> D:\other_projs\branches\issue-3390-dev>svn co 
> file:///d:/other_projs/branches/issue-3390-dev/issue-3390-repos 
> issue-3390-wc
> ..\..\..\subversion\libsvn_subr\sqlite.c:570: (apr_err=200032)
> svn: Schema format 14 not recognized

Did the "issue-3390-wc" subdirectory already exist before you ran this
command? If so, it looks like it was created with a different build of
Subversion from the one you're running now. If not, maybe you are using
a bad build of Subversion that links the wrong libraries.

- Julian

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403506

Re: issue-3390-dev branch question

Posted by Edmund Wong <ed...@kdtc.net>.
Hi,

On a related note re the above issue branch, I'm a bit
stuck with it recognizing the format of the WC.

I've created a whole new sandbox and have copied the
deps libraries to the sandbox.  I compiled it as I
would normally do with the trunk, with the Makefile
and the compile commands modified to reflect the
actual directories.  Instead of 1.6.5's SQLite, I
used 1.6.4's SQLite library (not that it makes any
difference).

(note: the line wraps are not part of the dump.)

D:\other_projs\branches\issue-3390-dev>svn --version
svn, version 1.7.0 (dev build)
    compiled Oct  5 2009, 17:01:05

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using 
Neon.
   - handles 'http' scheme
   - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
   - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
   - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using 
serf.
   - handles 'http' scheme
   - handles 'https' scheme

D:\other_projs\branches\issue-3390-dev>svnadmin --version
svnadmin, version 1.7.0 (dev build)
    compiled Oct  5 2009, 17:01:05

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.


D:\other_projs\branches\issue-3390-dev>svnadmin create issue-3390-repos

D:\other_projs\branches\issue-3390-dev>svn co 
file:///d:/other_projs/branches/issue-3390-dev/issue-3390-repos 
issue-3390-wc
..\..\..\subversion\libsvn_subr\sqlite.c:570: (apr_err=200032)
svn: Schema format 14 not recognized

D:\other_projs\branches\issue-3390-dev>dir issue*

  Directory of D:\other_projs\branches\issue-3390-dev

10/05/2009  05:22 PM    <DIR>          issue-3390-repos
10/05/2009  05:23 PM    <DIR>          issue-3390-wc
                0 File(s)              0 bytes
                2 Dir(s)  37,244,702,720 bytes free

D:\other_projs\branches\issue-3390-dev>cd issue-3390-wc

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>dir

  Directory of D:\other_projs\branches\issue-3390-dev\issue-3390-wc

10/05/2009  05:23 PM    <DIR>          .
10/05/2009  05:23 PM    <DIR>          ..
                0 File(s)              0 bytes
                2 Dir(s)  37,244,702,720 bytes free

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>svn mkdir --parents 
trunk/t
op/sub1 trunk/top/sub2
A         D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk
A         D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top
A 
D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top\sub1
A 
D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top\sub2

D:\other_projs\branches\issue-3390-dev>cd issue-3390-wc

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>svn mkdir --parents 
trunk/t
op/sub1 trunk/top/sub2
A         D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk
A         D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top
A 
D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top\sub1
A 
D:\other_projs\branches\issue-3390-dev\issue-3390-wc\trunk\top\sub2

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>touch 
trunk/top/sub2/file


D:\other_projs\branches\issue-3390-dev\issue-3390-wc>svn add 
trunk/top/sub2/file

A         trunk\top\sub2\file

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>svn ci -m "Add 
trunk stuff."
..\..\..\subversion\libsvn_client\commit.c:867: (apr_err=200032)
svn: Commit failed (details follow):
..\..\..\subversion\libsvn_subr\sqlite.c:570: (apr_err=200032)
svn: Schema format 14 not recognized

This application has requested the Runtime to terminate it in an unusual 
way.
Please contact the application's support team for more information.

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>

So at this point, I'm stuck.  I remove the issue-3390-wc and try
again.  Still the same problem.  'svn upgrade' doesn't work since
this branch was created before the 'upgrade' subcommand as
shown below:

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>svn upgrade
Unknown command: 'upgrade'
Type 'svn help' for usage.

D:\other_projs\branches\issue-3390-dev\issue-3390-wc>

Of course, it's a moot point in running upgrade (even if there
existed the upgrade sub-command) since the WC isn't even valid
at this point. (At least, I don't think it is since it doesn't
even have the admin dir.  IOW, an aborted checkout created the
faulty WC.)

Can someone clarify which part of the process I bungled up?  Might
I have used the wrong version library?  Or was my understanding
of the whole process flawed in some way that's beyond my
recognition?

Thanks.

Edmund

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2403500