[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(no subject)
From: |
Tyler |
Subject: |
(no subject) |
Date: |
Wed, 21 Apr 2004 15:06:48 -0700 |
User-agent: |
Mutt/1.4.2.1i |
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