websh

Help: 3-way-merge
Login

Help: 3-way-merge

The "3-way-merge" command:

Usage: fossil 3-way-merge BASELINE V1 V2 MERGED

Inputs are files BASELINE, V1, and V2. The file MERGED is generated as output.

BASELINE is a common ancestor of two files V1 and V2 that have diverging edits. The generated output file MERGED is the combination of all changes in both V1 and V2.

This command has no effect on the Fossil repository. It is a utility command made available for the convenience of users. This command can be used, for example, to help import changes from an upstream project.

Suppose an upstream project has a file named "Xup.c" which is imported with modifications to the local project as "Xlocal.c". Suppose further that the "Xbase.c" is an exact copy of the last imported "Xup.c". Then to import the latest "Xup.c" while preserving all the local changes:

fossil 3-way-merge Xbase.c Xlocal.c Xup.c Xlocal.c
cp Xup.c Xbase.c
# Verify that everything still works
fossil commit