Go to the first, previous, next, last section, table of contents.

## 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 section 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"

Go to the first, previous, next, last section, table of contents.