info-cvs
[Top][All Lists]
Advanced

[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




reply via email to

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