DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(cvs.info.gz) Merging a branch

Info Catalog (cvs.info.gz) Magic branch numbers (cvs.info.gz) Branching and merging (cvs.info.gz) Merging more than once
 
 5.6 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 greatest
 common ancestor (GCA) of the branch and the destination revision (in
 the simple case below the GCA is the point where the branch forked) and
 the 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.   Conflicts
 example.
 
    If your source files contain keywords ( Keyword substitution),
 you might be getting more conflicts than strictly necessary.  See 
 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.   Merging adds and removals, for
 more.
 
Info Catalog (cvs.info.gz) Magic branch numbers (cvs.info.gz) Branching and merging (cvs.info.gz) Merging more than once
automatically generated byinfo2html