[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Best method to replace a branch's code

From: Derek Robert Price
Subject: Re: Best method to replace a branch's code
Date: Wed, 24 Mar 2004 13:51:39 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1

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 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: address@hidden
> Get CVS support at <>!

Info-cvs mailing list

- --

Email: address@hidden

Get CVS support at <>!
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Netscape -


reply via email to

[Prev in Thread] Current Thread [Next in Thread]