NAME
bk merge − three-way text based file merge
SYNOPSIS
bk merge [−s] local ancestor remote
merge
bk merge [−s] path/gfile
DESCRIPTION
The bk merge command combines changes made to
ancestor by local with the changes made to
ancestor by remote and merges them into
merge. When only a gfile is given on the command
line, it is assumed to be a file in the RESYNC tree with an
unresolved merge. In that case the 3 parts are extracted
automatically and the merge output is written to stdout.
This form is mainly useful as part of pre-resolve
triggers.
If all changes are made to different regions of the ancestor, then the merge is said to be free of conflicts.
A conflict occurs if both local and remote have made changes to the same section of ancestor. If a conflict is found, the conflicting lines will be marked in the output as follows:
<<<<<<< local
changes made in the local repository
=======
changes made in the remote repository
>>>>>>> remote
It is up to the caller to edit the merge file and resolve any conflicts.
OPTIONS
−s Perform a set merge instead of a normal file
merge. In this case the files are assumed to be lists of
items, one item per line, and the merge does an automatic
union of the lists and writes the result in sorted order.
Conflicts cannot occur in this mode. This option is
automatically used to merge these BitKeeper files:
BitKeeper/etc/gone
BitKeeper/etc/ignore
EXIT STATUS
bk merge returns exit status:
0 if there were no conflicts
1 if there were conflicts
2 if an error occurred
SEE ALSO
diff3(1), bk-fmtool, bk-remerge,
bk-resolve, bk-resolving, bk-smerge,
bk-triggers
CATEGORY
Repository
File