SYNOPSISkdb 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
DESCRIPTIONDoes 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 MERGEThe 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.
CONFLICTSConflicts 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.
EXAMPLESTo 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