kdb-merge(1) Three-way merge of KeySets

SYNOPSIS

kdb merge [options] ourpath theirpath basepath resultpath
ourpath
Path to the keyset to serve as ours
theirpath
path to the keyset to serve as theirs
basepath
path to the base keyset
resultpath
path without keys where the merged keyset will be saved

DESCRIPTION

Does a three-way merge between keysets.
On success the resulting keyset will be saved to mergepath.
On unresolved conflicts nothing will be changed.

THREE-WAY MERGE

The kdb merge command uses a three-way merge by default.
A three-way merge is when three versions of a file (or in this case, KeySet) are compared in order to automatically merge the changes made to the KeySet over time.
These three versions of the KeySet are:
base
The base KeySet is the original version of the KeySet.
ours
The ours KeySet represents the user's current version of the KeySet.
This KeySet differs from base for every key you changed.
theirs
The theirs KeySet usually represents the default version of a KeySet (usually the package maintainer's version).
This KeySet differs from base for every key someone has changed.

The three-way merge works by comparing the ours KeySet and the theirs KeySet to the base KeySet. By looking for differences in these KeySets, a new KeySet called result is created that represents a merge of these KeySets.

CONFLICTS

Conflicts occur when a Key has a different value in all three KeySets.
Conflicts in a merge can be resolved using a strategy with the -s option. To interactively resolve conflicts, use the -i option.

OPTIONS

-H, --help: Show the man page.
-V, --version: Print version info.
s, --strategy <name>: Specify which strategy should be used to resolve conflicts.
-v, --verbose: Explain what is happening.
-i, --interactive Interactively resolve the conflicts.

EXAMPLES

To complete a simple merge of three KeySets:
kdb merge user/ours user/theirs user/base user/result

To complete a merge whilst using the ours version of the KeySet to resolve conflicts:
kdb merge -s ours user/ours user/theirs user/base user/result

To complete a three-way merge and overwrite all current keys in the resultpath:
kdb merge -s cut user/ours user/theirs user/base user/result