diff options
Diffstat (limited to 'mergetools')
-rw-r--r-- | mergetools/araxis | 2 | ||||
-rw-r--r-- | mergetools/bc | 23 | ||||
-rw-r--r-- | mergetools/bc3 | 26 | ||||
-rw-r--r-- | mergetools/codecompare | 2 | ||||
-rw-r--r-- | mergetools/deltawalker | 6 | ||||
-rw-r--r-- | mergetools/diffmerge | 5 | ||||
-rw-r--r-- | mergetools/diffuse | 2 | ||||
-rw-r--r-- | mergetools/ecmerge | 2 | ||||
-rw-r--r-- | mergetools/emerge | 5 | ||||
-rw-r--r-- | mergetools/examdiff | 16 | ||||
-rw-r--r-- | mergetools/gvimdiff3 | 1 | ||||
-rw-r--r-- | mergetools/kdiff3 | 5 | ||||
-rw-r--r-- | mergetools/kompare | 4 | ||||
-rw-r--r-- | mergetools/meld | 12 | ||||
-rw-r--r-- | mergetools/opendiff | 2 | ||||
-rw-r--r-- | mergetools/p4merge | 2 | ||||
-rw-r--r-- | mergetools/tkdiff | 4 | ||||
-rw-r--r-- | mergetools/tortoisemerge | 2 | ||||
-rw-r--r-- | mergetools/vimdiff | 24 | ||||
-rw-r--r-- | mergetools/vimdiff3 | 1 | ||||
-rw-r--r-- | mergetools/winmerge | 15 | ||||
-rw-r--r-- | mergetools/xxdiff | 12 |
22 files changed, 113 insertions, 60 deletions
diff --git a/mergetools/araxis b/mergetools/araxis index 64f97c5e97..e2407b65b7 100644 --- a/mergetools/araxis +++ b/mergetools/araxis @@ -3,7 +3,6 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" -wait -merge -3 -a1 \ @@ -12,7 +11,6 @@ merge_cmd () { "$merge_tool_path" -wait -2 \ "$LOCAL" "$REMOTE" "$MERGED" >/dev/null 2>&1 fi - check_unchanged } translate_merge_tool_path() { diff --git a/mergetools/bc b/mergetools/bc new file mode 100644 index 0000000000..3a69e60faa --- /dev/null +++ b/mergetools/bc @@ -0,0 +1,23 @@ +diff_cmd () { + "$merge_tool_path" "$LOCAL" "$REMOTE" +} + +merge_cmd () { + if $base_present + then + "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \ + -mergeoutput="$MERGED" + else + "$merge_tool_path" "$LOCAL" "$REMOTE" \ + -mergeoutput="$MERGED" + fi +} + +translate_merge_tool_path() { + if type bcomp >/dev/null 2>/dev/null + then + echo bcomp + else + echo bcompare + fi +} diff --git a/mergetools/bc3 b/mergetools/bc3 index b6319d206e..5d8dd48184 100644 --- a/mergetools/bc3 +++ b/mergetools/bc3 @@ -1,25 +1 @@ -diff_cmd () { - "$merge_tool_path" "$LOCAL" "$REMOTE" -} - -merge_cmd () { - touch "$BACKUP" - if $base_present - then - "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \ - -mergeoutput="$MERGED" - else - "$merge_tool_path" "$LOCAL" "$REMOTE" \ - -mergeoutput="$MERGED" - fi - check_unchanged -} - -translate_merge_tool_path() { - if type bcomp >/dev/null 2>/dev/null - then - echo bcomp - else - echo bcompare - fi -} +. "$MERGE_TOOLS_DIR/bc" diff --git a/mergetools/codecompare b/mergetools/codecompare index 3f0486bc80..9f60e8da65 100644 --- a/mergetools/codecompare +++ b/mergetools/codecompare @@ -3,7 +3,6 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" -BF="$BASE" \ @@ -12,7 +11,6 @@ merge_cmd () { "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" \ -RF="$MERGED" fi - check_unchanged } translate_merge_tool_path() { diff --git a/mergetools/deltawalker b/mergetools/deltawalker index b3c71b6236..ee6f374bce 100644 --- a/mergetools/deltawalker +++ b/mergetools/deltawalker @@ -16,6 +16,10 @@ merge_cmd () { fi >/dev/null 2>&1 } -translate_merge_tool_path() { +translate_merge_tool_path () { echo DeltaWalker } + +exit_code_trustable () { + true +} diff --git a/mergetools/diffmerge b/mergetools/diffmerge index 85ac720157..9b6355b98a 100644 --- a/mergetools/diffmerge +++ b/mergetools/diffmerge @@ -11,5 +11,8 @@ merge_cmd () { "$merge_tool_path" --merge \ --result="$MERGED" "$LOCAL" "$REMOTE" fi - status=$? +} + +exit_code_trustable () { + true } diff --git a/mergetools/diffuse b/mergetools/diffuse index 02e0843f47..5a3ae8b569 100644 --- a/mergetools/diffuse +++ b/mergetools/diffuse @@ -3,7 +3,6 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" \ @@ -13,5 +12,4 @@ merge_cmd () { "$merge_tool_path" \ "$LOCAL" "$MERGED" "$REMOTE" | cat fi - check_unchanged } diff --git a/mergetools/ecmerge b/mergetools/ecmerge index 13c2e439de..6c5101c4f7 100644 --- a/mergetools/ecmerge +++ b/mergetools/ecmerge @@ -3,7 +3,6 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" \ @@ -12,5 +11,4 @@ merge_cmd () { "$merge_tool_path" "$LOCAL" "$REMOTE" \ --default --mode=merge2 --to="$MERGED" fi - check_unchanged } diff --git a/mergetools/emerge b/mergetools/emerge index f96d9e550a..d1ce513ff5 100644 --- a/mergetools/emerge +++ b/mergetools/emerge @@ -15,9 +15,12 @@ merge_cmd () { "$LOCAL" "$REMOTE" \ "$(basename "$MERGED")" fi - status=$? } translate_merge_tool_path() { echo emacs } + +exit_code_trustable () { + true +} diff --git a/mergetools/examdiff b/mergetools/examdiff new file mode 100644 index 0000000000..e72b06fc4d --- /dev/null +++ b/mergetools/examdiff @@ -0,0 +1,16 @@ +diff_cmd () { + "$merge_tool_path" "$LOCAL" "$REMOTE" -nh +} + +merge_cmd () { + if $base_present + then + "$merge_tool_path" -merge "$LOCAL" "$BASE" "$REMOTE" -o:"$MERGED" -nh + else + "$merge_tool_path" -merge "$LOCAL" "$REMOTE" -o:"$MERGED" -nh + fi +} + +translate_merge_tool_path() { + mergetool_find_win32_cmd "ExamDiff.com" "ExamDiff Pro" +} diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3 new file mode 100644 index 0000000000..04a5bb0ea8 --- /dev/null +++ b/mergetools/gvimdiff3 @@ -0,0 +1 @@ +. "$MERGE_TOOLS_DIR/vimdiff" diff --git a/mergetools/kdiff3 b/mergetools/kdiff3 index a30034f116..0264ed5b20 100644 --- a/mergetools/kdiff3 +++ b/mergetools/kdiff3 @@ -20,5 +20,8 @@ merge_cmd () { -o "$MERGED" "$LOCAL" "$REMOTE" \ >/dev/null 2>&1 fi - status=$? +} + +exit_code_trustable () { + true } diff --git a/mergetools/kompare b/mergetools/kompare index 433686c12a..e8c0bfa678 100644 --- a/mergetools/kompare +++ b/mergetools/kompare @@ -5,3 +5,7 @@ can_merge () { diff_cmd () { "$merge_tool_path" "$LOCAL" "$REMOTE" } + +exit_code_trustable () { + true +} diff --git a/mergetools/meld b/mergetools/meld index cb672a5519..bc178e8882 100644 --- a/mergetools/meld +++ b/mergetools/meld @@ -7,7 +7,7 @@ merge_cmd () { then check_meld_for_output_version fi - touch "$BACKUP" + if test "$meld_has_output_option" = true then "$merge_tool_path" --output "$MERGED" \ @@ -15,16 +15,20 @@ merge_cmd () { else "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE" fi - check_unchanged } -# Check whether 'meld --output <file>' is supported +# Check whether we should use 'meld --output <file>' check_meld_for_output_version () { meld_path="$(git config mergetool.meld.path)" meld_path="${meld_path:-meld}" - if "$meld_path" --help 2>&1 | grep -e --output >/dev/null + if meld_has_output_option=$(git config --bool mergetool.meld.hasOutput) + then + : use configured value + elif "$meld_path" --help 2>&1 | + grep -e '--output=' -e '\[OPTION\.\.\.\]' >/dev/null then + : old ones mention --output and new ones just say OPTION... meld_has_output_option=true else meld_has_output_option=false diff --git a/mergetools/opendiff b/mergetools/opendiff index 0942b2a733..b608dd6de3 100644 --- a/mergetools/opendiff +++ b/mergetools/opendiff @@ -3,7 +3,6 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" "$LOCAL" "$REMOTE" \ @@ -12,5 +11,4 @@ merge_cmd () { "$merge_tool_path" "$LOCAL" "$REMOTE" \ -merge "$MERGED" | cat fi - check_unchanged } diff --git a/mergetools/p4merge b/mergetools/p4merge index 5a608abf9c..7a5b291dd2 100644 --- a/mergetools/p4merge +++ b/mergetools/p4merge @@ -20,14 +20,12 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" if ! $base_present then cp -- "$LOCAL" "$BASE" create_virtual_base "$BASE" "$REMOTE" fi "$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED" - check_unchanged } create_empty_file () { diff --git a/mergetools/tkdiff b/mergetools/tkdiff index 618c438e87..eee5cb57e3 100644 --- a/mergetools/tkdiff +++ b/mergetools/tkdiff @@ -10,3 +10,7 @@ merge_cmd () { "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE" fi } + +exit_code_trustable () { + true +} diff --git a/mergetools/tortoisemerge b/mergetools/tortoisemerge index 3b89f1c82d..d7ab666a59 100644 --- a/mergetools/tortoisemerge +++ b/mergetools/tortoisemerge @@ -5,7 +5,6 @@ can_diff () { merge_cmd () { if $base_present then - touch "$BACKUP" basename="$(basename "$merge_tool_path" .exe)" if test "$basename" = "tortoisegitmerge" then @@ -17,7 +16,6 @@ merge_cmd () { -base:"$BASE" -mine:"$LOCAL" \ -theirs:"$REMOTE" -merged:"$MERGED" fi - check_unchanged else echo "$merge_tool_path cannot be used without a base" 1>&2 return 1 diff --git a/mergetools/vimdiff b/mergetools/vimdiff index 39d032771b..10d86f3e19 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff @@ -4,13 +4,12 @@ diff_cmd () { } merge_cmd () { - touch "$BACKUP" case "$1" in gvimdiff|vimdiff) if $base_present then - "$merge_tool_path" -f -d -c 'wincmd J' \ - "$MERGED" "$LOCAL" "$BASE" "$REMOTE" + "$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \ + "$LOCAL" "$BASE" "$REMOTE" "$MERGED" else "$merge_tool_path" -f -d -c 'wincmd l' \ "$LOCAL" "$MERGED" "$REMOTE" @@ -20,17 +19,30 @@ merge_cmd () { "$merge_tool_path" -f -d -c 'wincmd l' \ "$LOCAL" "$MERGED" "$REMOTE" ;; + gvimdiff3|vimdiff3) + if $base_present + then + "$merge_tool_path" -f -d -c 'hid | hid | hid' \ + "$LOCAL" "$REMOTE" "$BASE" "$MERGED" + else + "$merge_tool_path" -f -d -c 'hid | hid' \ + "$LOCAL" "$REMOTE" "$MERGED" + fi + ;; esac - check_unchanged } translate_merge_tool_path() { case "$1" in - gvimdiff|gvimdiff2) + gvimdiff|gvimdiff2|gvimdiff3) echo gvim ;; - vimdiff|vimdiff2) + vimdiff|vimdiff2|vimdiff3) echo vim ;; esac } + +exit_code_trustable () { + true +} diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3 new file mode 100644 index 0000000000..04a5bb0ea8 --- /dev/null +++ b/mergetools/vimdiff3 @@ -0,0 +1 @@ +. "$MERGE_TOOLS_DIR/vimdiff" diff --git a/mergetools/winmerge b/mergetools/winmerge new file mode 100644 index 0000000000..74d03259fd --- /dev/null +++ b/mergetools/winmerge @@ -0,0 +1,15 @@ +diff_cmd () { + "$merge_tool_path" -u -e "$LOCAL" "$REMOTE" + return 0 +} + +merge_cmd () { + # mergetool.winmerge.trustExitCode is implicitly false. + # touch $BACKUP so that we can check_unchanged. + "$merge_tool_path" -u -e -dl Local -dr Remote \ + "$LOCAL" "$REMOTE" "$MERGED" +} + +translate_merge_tool_path() { + mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge" +} diff --git a/mergetools/xxdiff b/mergetools/xxdiff index 05b443394b..ce5b8e9f29 100644 --- a/mergetools/xxdiff +++ b/mergetools/xxdiff @@ -1,25 +1,23 @@ diff_cmd () { "$merge_tool_path" \ -R 'Accel.Search: "Ctrl+F"' \ - -R 'Accel.SearchForward: "Ctrl-G"' \ + -R 'Accel.SearchForward: "Ctrl+G"' \ "$LOCAL" "$REMOTE" } merge_cmd () { - touch "$BACKUP" if $base_present then "$merge_tool_path" -X --show-merged-pane \ - -R 'Accel.SaveAsMerged: "Ctrl-S"' \ + -R 'Accel.SaveAsMerged: "Ctrl+S"' \ -R 'Accel.Search: "Ctrl+F"' \ - -R 'Accel.SearchForward: "Ctrl-G"' \ + -R 'Accel.SearchForward: "Ctrl+G"' \ --merged-file "$MERGED" "$LOCAL" "$BASE" "$REMOTE" else "$merge_tool_path" -X $extra \ - -R 'Accel.SaveAsMerged: "Ctrl-S"' \ + -R 'Accel.SaveAsMerged: "Ctrl+S"' \ -R 'Accel.Search: "Ctrl+F"' \ - -R 'Accel.SearchForward: "Ctrl-G"' \ + -R 'Accel.SearchForward: "Ctrl+G"' \ --merged-file "$MERGED" "$LOCAL" "$REMOTE" fi - check_unchanged } |