[cvsnt] Re: Branch merging - this seems wrong...

Tony Hoyle tony.hoyle at march-hare.com
Wed Jun 7 15:14:05 BST 2006


Andreas Krey wrote:
> It is completely irrelevant whether they store them as diffs, as full
> text each, as lists of pointers to shared common lines or whatever.
> That is a detail of the rcs file format that is (supposedly) underlying
> cvs and cvsnt.

It's the whole point of this discussion in fact.  What the end user sees 
is only important in that it must be correct.

> Of course I could. As long as the SCM is able to retrieve any revision
> of a file I can simply run diff to recreate the differences. But anyway
> the merge is not working by applying the individual diffs but rather by
> one diff3 run. Using diffs in the rcs file was just to keep the files small.

Not true.

Merging works by taking the difference between the common revision 
(branchpoint or mergepoint) and the latest revision on the branch.

That diff is then applied to the target branch.  Only 1 diff and 1 
revision are used in that process.

Normally diff3 is not used, unless the client copy has changed, in which 
case it's used to more intelligently handle the conflict cases.

If you get the wrong common revision as you want to do you *lose* all 
the changes made before that revision as they are not already in the 
target branch.

Tony



More information about the cvsnt mailing list