-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I was in a hurry when I wrote this earlier. The short version is that the form of the command I suggested is asking CVS to take the changes that would be necesary to transform point A into point B and merge them into point A, which, by definition, then transforms point A into point B.
Derek Derek Robert Price wrote: > Larry Jones wrote: > > Derek Robert Price writes: > > >cvs up -jbranchA -jbranchB -rbranchA project > > > Isn't that just a long way of doing: > > cvs up -rbranchA -jbranchB project > > That was my first thought, but it still may require a bit of manual > intervention. For example, that won't delete files that exist on > branchA that have never existed on branchB and you'll get conflicts for > files that were independently created on both branches. It is a good > start, though, and may do the whole job if you're lucky. > > > > No. The trick to thinking about this is really to visualize only your > destination and your merge endpoints as three distinct snapshots of a > project in time and try to ignore the intervening changes, but I will > draw the branch diagram anyhow. Assume: > > --X---Y-------------------------------------- > \ \ > \ \----------branchA----- > \ > \--------branchB----- > > `cvs up -rbranchA -jbranchB' will compute the GCA of branchA & branchB > (X in the diagram), computes the diff from X to the tip of branchB, then > merges the result (effectively applying it via the patch program) into > branchA. This is effectively merging the changes since branchB branched > into branchA and neglecting to remove any changes made to the trunk > since branchB branched or to branchA. > > `cvs up -rbranchA -jbranchA -jbranchB', computes the diff from the tip > of branchA to the tip of branchB, then merges the result (again, > effectively applying it via the patch program) into the tip of branchA, > effectively recreating branchB. > > In other words, imagine: > > echo a whole bunch of junk >file > cp file file2 > echo some other junk >>file2 > diff -u file file2 >mypatch.diff > patch -p0 <mypatch.diff > > Bingo. Since the diff was determine from file -> file2, then the > resulting patch applied to file, the contents of file now look like file2. > > Derek > > -- > *8^) > > Email: [EMAIL PROTECTED] > > Get CVS support at <http://ximbiot.com>! _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs - -- *8^) Email: [EMAIL PROTECTED] Get CVS support at <http://ximbiot.com>! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org iD8DBQFAYdi6LD1OTBfyMaQRAp8dAKCkrv92ynJ6I07I8iLImhgFNmBS3wCff9HV pu3FxUhcm8H6ljvSZ6f537U= =tmAv -----END PGP SIGNATURE----- _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs