$darkmode
Elektra 0.10.0
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.
  • -p, --profile <profile>: Use a different kdb profile.
  • -C, --color <when>: Print never/auto(default)/always colored output.
  • -f, --force: Will remove existing keys from resultpath instead 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, --interactive Interactively resolve the conflicts.

RETURN VALUE

  • 0: Successful.
  • 11: A conflict occurred during the merge.

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

SEE ALSO