[Svnmerge] Question about usage with developer branches

Raman Gupta rocketraman at fastmail.fm
Thu Aug 16 13:55:24 PDT 2007


Jon Schewe wrote:
> On Thu, 2007-08-16 at 14:23 -0400, Raman Gupta wrote:
>> Could you post the results of the same merge with -vv.
> 
> Doing that I realize that it's trying to merge from another developer
> branch instead of the trunk.  What would cause that?

Its probably because when the branch was created, it was created as a
copy of trunk. Since trunk has the merge props to the other developer
branch, those properties got copied over to your development branch.
Also, you probably never initialized merging with the trunk after
creating the second developer branch (otherwise you would have got a
warning about multiple merge sources, and that you should use -S).

You should uninit the other developer branch and init merging with the
trunk. Perhaps svnmerge should grow an "svn init --cp" (or similar)
command that handles this automatically -- it would do the copy,
uninit merging to any existing branches, and init branching with the
source branch.

A lot of people would say, as they have said in the past, that such a
feature "loses information". Whatever the merits of that argument, the
sad truth is that this "carry-over" merge information causes problems
more often than not (just as in your case). This is because merging
has essentially been "initialized" between branches even though the
user never explicitly requested it (other than tangentially due to an
svn cp). That said, if graph merging was fully supported, then it
would be ok to keep that info, since it is useful in that case.

> Also, should svnmerge be able to handle such merges?  Between branches
> and between the trunk and a branch?

Yes, as long as the branching reduces to unidirectional or
bidirectional merging between branches. For example:

A <-> B <-> C is ok, but

A <-> B <-> C <-> A is not

The latter is an example of the graph merging that has come up in
previous posts. If you were to actually use the developer branch to
developer branch merging in your use case, you would definitely run
into problems since that is an example of the second case above (where
A is trunk and B and C are developer branches).

Cheers,
Raman Gupta



More information about the Svnmerge mailing list