Magic branch numbers Branching and merging Merging more than once
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"