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
