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
basekeyset -
resultpath: 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:
-
base: ThebaseKeySet is the original version of the KeySet. -
ours: TheoursKeySet represents the user's current version of the KeySet.
This KeySet differs frombasefor every key you changed. -
theirs: ThetheirsKeySet usually represents the default version of a KeySet (usually the package maintainer's version).
This KeySet differs frombasefor 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.-p,--profile <profile>: Use a different kdb profile.-C,--color <when>: Print never/auto(default)/always colored output.-f,--force: Will remove existing keys fromresultpathinstead of failing.-s,--strategy <name>: Specify which strategy should be used to resolve conflicts.-v,--verbose: Explain what is happening. Prints additional information in case of errors/warnings.-d,--debug: Give debug information. Prints additional debug information in case of errors/warnings.-i,--interactiveInteractively resolve the conflicts.
-
0: Successful.
-
11: A conflict occurred during the merge.
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
- elektra-merge-strategy(7)
- elektra-key-names(7) for an explanation of key names.