Thanks all - I get it now.  

But it +is+ a bit of a brainteaser.  I think I'd be frightened of
using something that complex on a live system, even if I could check
the results before I committed them to the repository (which, of
course, is the case).

Andy.

On 17/08/05, Jim Hyslop <[EMAIL PROTECTED]> wrote:
> Andy Jones wrote:
> >>>cvs co -j HEAD -j t_branchA_tagA module
> >
> >
> > Does anyone feel like explainaing how this is not a merge?  I don't get it.
> 
> It is a merge command, but it does not merge the changes from the
> branch. It will overwrite the head with the branch.
> 
> The command as shown is a shortcut to:
> 
> cvs co module
> cd module
> cvs up -j HEAD -j t_branchA_tagA
> 
> "cvs up -j REVA -j REVB", the merge command, applies the delta between
> REVB and REVA to the current directory. For a normal merge, REVA and
> REVB are normally on the same branch, thus you would get the changes
> from the branch merged into the changes on the trunk, i.e. trunk = trunk
> + branch. But, in this case, REVA and REVB refer to the tip revisions on
> two different branches. The delta is Branch-HEAD, which when added to
> the HEAD, results in Branch.
> 
> Mathematically, this can be expressed as:
> 
> CWD = CWD + Delta
> 
> where CWD is the current working directory, and Delta is REVB - REVA. In
> this example CWD is HEAD, REVA is HEAD and REVB is Branch, so the
> equation becomes:
> 
> CWD = HEAD + Branch - HEAD
> 
> which simplifies to
> 
> CWD = Branch
> 
> It takes a bit to wrap your head around it, but it does work and do
> exactly what Christopher wanted.
> 
> --
> Jim
> 
>


_______________________________________________
Info-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/info-cvs

Reply via email to