Merging a branch -- CVS---Concurrent Versions System



Next: Merging more than once Up: Merging Top: Top

8.1. Merging an entire branch

You can merge changes made on a branch into your working copy by giving the `-j branch' flag to the update command. With one `-j branch' option it merges the changes made between the point where the branch forked and newest revision on that branch (into your working copy).

The `-j' stands for ``join''.

Consider this revision tree:

+-----+    +-----+    +-----+    +-----+

! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 ! <- The main trunk

+-----+ +-----+ +-----+ +-----+

!

!

! +---------+ +---------+

Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !

+---------+ +---------+

The branch 1.2.2 has been given the tag (symbolic name) `R1fix'. The following example assumes that the module `mod' contains only one file, m.c.

$ cvs checkout mod               # Retrieve the latest revision, 1.4

$ cvs update -j R1fix m.c # Merge all changes made on the branch,

# i.e. the changes between revision 1.2

# and 1.2.2.2, into your working copy

# of the file.

$ cvs commit -m "Included R1fix" # Create revision 1.5.

A conflict can result from a merge operation. If that happens, you should resolve it before committing the new revision. See Conflicts example.

The checkout command also supports the `-j branch' flag. The same effect as above could be achieved with this:

$ cvs checkout -j R1fix mod

$ cvs commit -m "Included R1fix"



Next: Merging more than once Up: Merging Top: Top