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


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


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


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:
The base KeySet is the original version of the KeySet.
The ours KeySet represents the user's current version of the KeySet.
This KeySet differs from base for every key you changed.
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 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.


-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.


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