5.6 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,
$ 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. 10.3 Conflicts example.
If your source files contain keywords ( 12. Keyword substitution),
you might be getting more conflicts than strictly necessary. See
5.10 Merging and keywords, for information on how to avoid this.
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"
|
|