Elektra  0.9.9
elektra-merge-strategies(7) – how to merge key sets

In elektra-tools a three-way merging was implemented. It can also use be used for two-way merging, e.g. for importing.

Note: For a two-way merge, the ours version of the keys is used in place of base

3-WAY

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

STRATEGIES

Currently the following strategies exist:

  • preserve: Automerge only those keys where just one side deviates from base (default).
  • ours: Whenever a conflict exists, use our version.
  • theirs: Whenever a conflict exists, use their version.
  • cut: Removes existing keys below the resultpath and replaces them with the merged keyset.
  • unchanged: (EXPERIMENTAL, only for kdb-mount) Do not fail if the operation does not change anything.
  • import: (DEPRECATED, avoid using it) Preserves existing keys in the resultpath if they do not exist in the merged keyset. If the key does exist in the merged keyset, it will be overwritten.