info-cvs
[Top][All Lists]
Advanced

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

Re: merging delta between two revisions down to trunk doesn't work (was


From: Tyler
Subject: Re: merging delta between two revisions down to trunk doesn't work (was (no subject))
Date: Wed, 21 Apr 2004 16:31:39 -0700
User-agent: Mutt/1.4.2.1i

Forgot the subject before. Whoops.

It turns out my test case was too simple, and this was a pathological
case for the diff/patch step, because there wasn't any context. I'm
still not sure why the text from 1.1.2.1 ends up in the conflict section
in the merged result, but that's likely not a cvs problem.

tyler

On Wed, Apr 21, 2004 at 03:06:48PM -0700, Tyler wrote:
> Sorry this is long, but i'm hoping this is an instructive example.
> 
> I'm trying to take the delta between two revisions of a file on a branch
> and merge that delta onto the trunk. This doesn't seem to work:
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs status test
> ===================================================================
> File: test              Status: Up-to-date
> 
>    Working revision:    1.1
>    Repository revision: 1.1     /cvsroot/sandbox/troscoe/test,v
>    Sticky Tag:          (none)
>    Sticky Date:         (none)
>    Sticky Options:      (none)
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -j1.1.2.1 -j1.1.2.2 test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1.2.1
> retrieving revision 1.1.2.2
> Merging differences between 1.1.2.1 and 1.1.2.2 into test
> rcsmerge: warning: conflicts during merge
> 
> address@hidden:~/src/sandbox/troscoe]$ cat test 
> trunk line 1
> <<<<<<< test
> =======
> branch line 1
> branch line 2
> >>>>>>> 1.1.2.2
> 
> 
> 
> Two questions:
> 
> 1. Why is a conflict being generated, especially considering that the
> top half of the conflict is with nothing.
> 
> 2. Why does "branch line 1" (from 1.1.2.1) come along for the ride when
> i do this merge?
> 
> 
> Here's a painfully complete picture of the test environment:
> 
> ### set up a simple test file
> 
> address@hidden:~/src/sandbox/troscoe]$ echo "trunk line 1" > test
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs add test
> cvs add: use 'cvs commit' to add this file permanently
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs commit -m "test file initial 
> revision" test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> done
> Checking in test;
> /cvsroot/sandbox/troscoe/test,v  <--  test
> initial revision: 1.1
> done
> 
> 
> ### branch it
> address@hidden:~/src/sandbox/troscoe]$ cvs tag -b BRANCH test
> T test
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -rBRANCH test
> 
> ### check in a couple changes on the branch
> address@hidden:~/src/sandbox/troscoe]$ echo "branch line 1" >> test
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs commit -m"branch line 1" test
> Checking in test;
> /cvsroot/sandbox/troscoe/test,v  <--  test
> new revision: 1.1.2.1; previous revision: 1.1
> done
> 
> address@hidden:~/src/sandbox/troscoe]$ echo "branch line 2" >> test
> address@hidden:~/src/sandbox/troscoe]$ cvs commit -m"branch line 2" test
> Checking in test;
> /cvsroot/sandbox/troscoe/test,v  <--  test
> new revision: 1.1.2.2; previous revision: 1.1.2.1
> done
> 
> ### so here's what things look like:
> address@hidden:~/src/sandbox/troscoe]$ cvs up -r1.1 -p test
> trunk line 1
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -r1.1.2.1 -p test
> trunk line 1
> branch line 1
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -r1.1.2.2 -p test
> trunk line 1
> branch line 1
> branch line 2
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs diff -u -r1.1 -r1.1.2.1 test
> Index: test
> ===================================================================
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1
> retrieving revision 1.1.2.1
> diff -u -u -r1.1 -r1.1.2.1
> --- test        21 Apr 2004 20:56:40 -0000      1.1
> +++ test        21 Apr 2004 20:58:35 -0000      1.1.2.1
> @@ -1 +1,2 @@
>  trunk line 1
> +branch line 1
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs diff -u -r1.1.2.1 -r1.1.2.2 test
> Index: test
> ===================================================================
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1.2.1
> retrieving revision 1.1.2.2
> diff -u -u -r1.1.2.1 -r1.1.2.2
> --- test        21 Apr 2004 20:58:35 -0000      1.1.2.1
> +++ test        21 Apr 2004 20:59:51 -0000      1.1.2.2
> @@ -1,2 +1,3 @@
>  trunk line 1
>  branch line 1
> +branch line 2
> 
> ### i can merge any contiguous parts of the branch back down to the trunk
> address@hidden:~/src/sandbox/troscoe]$ cvs status test
> ===================================================================
> File: test              Status: Up-to-date
> 
>    Working revision:    1.1
>    Repository revision: 1.1     /cvsroot/sandbox/troscoe/test,v
>    Sticky Tag:          (none)
>    Sticky Date:         (none)
>    Sticky Options:      (none)
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -jBRANCH test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1
> retrieving revision 1.1.2.2
> Merging differences between 1.1 and 1.1.2.2 into test
> 
> address@hidden:~/src/sandbox/troscoe]$ cat test
> trunk line 1
> branch line 1
> branch line 2
> 
> ### i can merge backwards to roll back a change
> address@hidden:~/src/sandbox/troscoe]$ cvs status test 
> ===================================================================
> File: test              Status: Up-to-date
> 
>    Working revision:    1.1.2.2
>    Repository revision: 1.1.2.2 /cvsroot/sandbox/troscoe/test,v
>    Sticky Tag:          BRANCH (branch: 1.1.2)
>    Sticky Date:         (none)
>    Sticky Options:      (none)
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -j1.1.2.2 -j1.1.2.1 test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1.2.2
> retrieving revision 1.1.2.1
> Merging differences between 1.1.2.2 and 1.1.2.1 into test
> 
> address@hidden:~/src/sandbox/troscoe]$ cat test 
> trunk line 1
> branch line 1
> 
> ### and roll back some more
> address@hidden:~/src/sandbox/troscoe]$ cvs up -j1.1.2.1 -j1.1 test
> M test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1.2.1
> retrieving revision 1.1
> Merging differences between 1.1.2.1 and 1.1 into test
> address@hidden:~/src/sandbox/troscoe]$ cat test
> trunk line 1
> 
> ### but this doesn't work, and i don't understand why
> address@hidden:~/src/sandbox/troscoe]$ cvs status test
> ===================================================================
> File: test              Status: Up-to-date
> 
>    Working revision:    1.1
>    Repository revision: 1.1     /cvsroot/sandbox/troscoe/test,v
>    Sticky Tag:          (none)
>    Sticky Date:         (none)
>    Sticky Options:      (none)
> 
> address@hidden:~/src/sandbox/troscoe]$ cvs up -j1.1.2.1 -j1.1.2.2 test
> RCS file: /cvsroot/sandbox/troscoe/test,v
> retrieving revision 1.1.2.1
> retrieving revision 1.1.2.2
> Merging differences between 1.1.2.1 and 1.1.2.2 into test
> rcsmerge: warning: conflicts during merge
> 
> address@hidden:~/src/sandbox/troscoe]$ cat test 
> trunk line 1
> <<<<<<< test
> =======
> branch line 1
> branch line 2
> >>>>>>> 1.1.2.2
> 
> 
> 
> Is there no way to take the delta between two revisions and merge those
> onto another branch? Do i have to merge the entire branch down if i want
> to do this?
> 
> Thanks!
> tyler
> 
> 
> _______________________________________________
> Info-cvs mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/info-cvs




reply via email to

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