GNU Info

Info Node: (cvs.info)Merging a branch

(cvs.info)Merging a branch


Next: Merging more than once Prev: Magic branch numbers Up: Branching and merging
Enter node , (file) or (file)node

Merging an entire branch
========================

   You can merge changes made on a branch into your working copy by
giving the `-j BRANCHNAME' flag to the `update' subcommand.  With one
`-j BRANCHNAME' 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.  Note: Conflicts
example.

   If your source files contain keywords (Note: Keyword substitution),
you might be getting more conflicts than strictly necessary.  See Note:
Merging and keywords, for information on how to avoid this.

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

     $ cvs checkout -j R1fix mod
     $ cvs commit -m "Included R1fix"

   It should be noted that `update -j TAGNAME' will also work but may
not produce the desired result.  Note: Merging adds and removals, for
more.


automatically generated by info2www version 1.2.2.9