From 7c19d0103e46c9e59b512095693491a4093a13f3 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 25 Sep 2026 19:19:15 +0200 Subject: Add support for combining --merge and --symmetric MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- t/all-positive-options-merge | 23 ------- t/all-positive-options-merge-symmetric | 23 +++++++ t/all-positive-options-symmetric | 23 ------- t/combination-merge-symmetric | 26 ++++++++ t/combination-symmetric-merge | 26 ++++++++ t/invalid-option-combinations | 112 +++++++++++++++------------------ 6 files changed, 127 insertions(+), 106 deletions(-) delete mode 100755 t/all-positive-options-merge create mode 100755 t/all-positive-options-merge-symmetric delete mode 100755 t/all-positive-options-symmetric create mode 100755 t/combination-merge-symmetric create mode 100755 t/combination-symmetric-merge (limited to 't') diff --git a/t/all-positive-options-merge b/t/all-positive-options-merge deleted file mode 100755 index eeb21d0..0000000 --- a/t/all-positive-options-merge +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -. t/common.sh -interactive - -printf '%s\n' > file \ - "${HEAD} ours" \ - same \ - ours \ - "${PARENT} base" \ - same \ - base \ - "${TAIL}" \ - same \ - theirs \ - "${END} theirs" - -printf '%s\n' > file.expected \ - same \ - ours - -printf '%s' h > input -normal --merge --remove-base --reduce --interactive file 8output -test -s output diff --git a/t/all-positive-options-merge-symmetric b/t/all-positive-options-merge-symmetric new file mode 100755 index 0000000..03d3879 --- /dev/null +++ b/t/all-positive-options-merge-symmetric @@ -0,0 +1,23 @@ +#!/bin/sh -e +. t/common.sh +interactive + +printf '%s\n' > file \ + "${HEAD} ours" \ + same \ + ours \ + "${PARENT} base" \ + same \ + base \ + "${TAIL}" \ + same \ + theirs \ + "${END} theirs" + +printf '%s\n' > file.expected \ + same \ + ours + +printf '%s' h > input +normal --merge --symmetric --remove-base --reduce --interactive file 8output +test -s output diff --git a/t/all-positive-options-symmetric b/t/all-positive-options-symmetric deleted file mode 100755 index eb53cb9..0000000 --- a/t/all-positive-options-symmetric +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -. t/common.sh -interactive - -printf '%s\n' > file \ - "${HEAD} ours" \ - same \ - ours \ - "${PARENT} base" \ - same \ - base \ - "${TAIL}" \ - same \ - theirs \ - "${END} theirs" - -printf '%s\n' > file.expected \ - same \ - ours - -printf '%s' h > input -normal --symmetric --remove-base --reduce --interactive file 8output -test -s output diff --git a/t/combination-merge-symmetric b/t/combination-merge-symmetric new file mode 100755 index 0000000..40e2adc --- /dev/null +++ b/t/combination-merge-symmetric @@ -0,0 +1,26 @@ +#!/bin/sh -e +. t/common.sh + +printf '%s\n' > file \ + "${HEAD} 1" \ + old-1 \ + "${PARENT} 1" \ + old-1 \ + "${TAIL} 1" \ + new-1 \ + "${END} 1" \ + "${HEAD} 2" \ + new-2 \ + "${PARENT} 2" \ + old-2 \ + "${TAIL} 2" \ + new-2 \ + "${END} 2" + +printf '%s\n' > file.expected \ + new-1 \ + new-2 + +normal --merge --symmetric --no-reduce file + +also_interactive my diff --git a/t/combination-symmetric-merge b/t/combination-symmetric-merge new file mode 100755 index 0000000..4d2c1a2 --- /dev/null +++ b/t/combination-symmetric-merge @@ -0,0 +1,26 @@ +#!/bin/sh -e +. t/common.sh + +printf '%s\n' > file \ + "${HEAD} 1" \ + old-1 \ + "${PARENT} 1" \ + old-1 \ + "${TAIL} 1" \ + new-1 \ + "${END} 1" \ + "${HEAD} 2" \ + new-2 \ + "${PARENT} 2" \ + old-2 \ + "${TAIL} 2" \ + new-2 \ + "${END} 2" + +printf '%s\n' > file.expected \ + new-1 \ + new-2 + +normal --symmetric --merge --no-reduce file + +also_interactive my diff --git a/t/invalid-option-combinations b/t/invalid-option-combinations index 1a75005..3a84384 100755 --- a/t/invalid-option-combinations +++ b/t/invalid-option-combinations @@ -4,66 +4,58 @@ printf '%s\n' text > file cp -- file file.expected -error --merge --select-head file -error --select-head --merge file -error --merge --select-tail file -error --select-tail --merge file -error --select-head --select-tail file -error --select-tail --select-head file -error --merge --select-head --select-tail file -error --merge --select-tail --select-head file -error --select-head --merge --select-tail file -error --select-head --select-tail --merge file -error --select-tail --merge --select-head file -error --select-tail --select-head --merge file -error --symmetric --merge file -error --merge --symmetric file -error --symmetric --select-head file -error --select-head --symmetric file -error --symmetric --select-tail file -error --select-tail --symmetric file -error --symmetric --merge --select-head file -error --symmetric --select-head --merge file -error --symmetric --merge --select-tail file -error --symmetric --select-tail --merge file -error --symmetric --select-head --select-tail file -error --symmetric --select-tail --select-head file -error --merge --symmetric --select-head file -error --select-head --symmetric --merge file -error --merge --symmetric --select-tail file -error --select-tail --symmetric --merge file -error --select-head --symmetric --select-tail file -error --select-tail --symmetric --select-head file -error --merge --select-head --symmetric file -error --select-head --merge --symmetric file -error --merge --select-tail --symmetric file -error --select-tail --merge --symmetric file -error --select-head --select-tail --symmetric file -error --select-tail --select-head --symmetric file -error --symmetric --merge --select-head --select-tail file -error --symmetric --merge --select-tail --select-head file -error --symmetric --select-head --merge --select-tail file -error --symmetric --select-head --select-tail --merge file -error --symmetric --select-tail --merge --select-head file -error --symmetric --select-tail --select-head --merge file -error --merge --symmetric --select-head --select-tail file -error --merge --symmetric --select-tail --select-head file -error --select-head --symmetric --merge --select-tail file -error --select-head --symmetric --select-tail --merge file -error --select-tail --symmetric --merge --select-head file -error --select-tail --symmetric --select-head --merge file -error --merge --select-head --symmetric --select-tail file -error --merge --select-tail --symmetric --select-head file -error --select-head --merge --symmetric --select-tail file -error --select-head --select-tail --symmetric --merge file -error --select-tail --merge --symmetric --select-head file -error --select-tail --select-head --symmetric --merge file -error --merge --select-head --select-tail --symmetric file -error --merge --select-tail --select-head --symmetric file -error --select-head --merge --select-tail --symmetric file -error --select-head --select-tail --merge --symmetric file -error --select-tail --merge --select-head --symmetric file -error --select-tail --select-head --merge --symmetric file +all_permutations () { + if test $# = 2; then + error "$1" "$2" file + error "$2" "$1" file + elif test $# = 3; then + error "$1" "$2" "$3" file + error "$1" "$3" "$2" file + error "$2" "$1" "$3" file + error "$2" "$3" "$1" file + error "$3" "$1" "$2" file + error "$3" "$2" "$1" file + elif test $# = 4; then + error "$1" "$2" "$3" "$4" file + error "$1" "$2" "$4" "$3" file + error "$1" "$3" "$2" "$4" file + error "$1" "$3" "$4" "$2" file + error "$1" "$4" "$2" "$3" file + error "$1" "$4" "$3" "$2" file + error "$2" "$1" "$3" "$4" file + error "$2" "$1" "$4" "$3" file + error "$2" "$3" "$1" "$4" file + error "$2" "$3" "$4" "$1" file + error "$2" "$4" "$1" "$3" file + error "$2" "$4" "$3" "$1" file + error "$3" "$1" "$2" "$4" file + error "$3" "$1" "$4" "$2" file + error "$3" "$2" "$1" "$4" file + error "$3" "$2" "$4" "$1" file + error "$3" "$4" "$1" "$2" file + error "$3" "$4" "$2" "$1" file + error "$4" "$1" "$2" "$3" file + error "$4" "$1" "$3" "$2" file + error "$4" "$2" "$1" "$3" file + error "$4" "$2" "$3" "$1" file + error "$4" "$3" "$1" "$2" file + error "$4" "$3" "$2" "$1" file + else + printf 'Error in test case: all_permutations was given %s arguments\n' "$#" >&2 + exit 99; + fi +} + +all_permutations --select-head --select-tail +all_permutations --merge --select-head +all_permutations --merge --select-tail +all_permutations --merge --select-head --select-tail +all_permutations --symmetric --select-head +all_permutations --symmetric --select-tail +all_permutations --symmetric --select-head --select-tail +all_permutations --merge --symmetric --select-head +all_permutations --merge --symmetric --select-tail +all_permutations --merge --symmetric --select-head --select-tail error --unknown-option file error '-$' file -- cgit v1.3.1