commit-graph, fuzz: add fuzzer for commit-graph
[gitweb.git] / git-mergetool.sh
index c062e3de3a503bd01203f2a6aef63eea63cae5c5..01b9ad59b24ff77221d5db4118c9d0265dc25fad 100755 (executable)
@@ -9,7 +9,7 @@
 # at the discretion of Junio C Hamano.
 #
 
-USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-O<orderfile>] [file to merge] ...'
+USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-g|--gui|--no-gui] [-O<orderfile>] [file to merge] ...'
 SUBDIRECTORY_OK=Yes
 NONGIT_OK=Yes
 OPTIONS_SPEC=
@@ -389,6 +389,7 @@ print_noop_and_exit () {
 
 main () {
        prompt=$(git config --bool mergetool.prompt)
+       gui_tool=false
        guessed_merge_tool=false
        orderfile=
 
@@ -414,6 +415,12 @@ main () {
                                shift ;;
                        esac
                        ;;
+               --no-gui)
+                       gui_tool=false
+                       ;;
+               -g|--gui)
+                       gui_tool=true
+                       ;;
                -y|--no-prompt)
                        prompt=false
                        ;;
@@ -443,7 +450,7 @@ main () {
        if test -z "$merge_tool"
        then
                # Check if a merge tool has been configured
-               merge_tool=$(get_configured_merge_tool)
+               merge_tool=$(get_configured_merge_tool $gui_tool)
                # Try to guess an appropriate merge tool if no tool has been set.
                if test -z "$merge_tool"
                then
@@ -491,14 +498,16 @@ main () {
        printf "%s\n" "$files"
 
        rc=0
-       for i in $files
+       set -- $files
+       while test $# -ne 0
        do
                printf "\n"
-               if ! merge_file "$i"
+               if ! merge_file "$1"
                then
                        rc=1
-                       prompt_after_failed_merge || exit 1
+                       test $# -ne 1 && prompt_after_failed_merge || exit 1
                fi
+               shift
        done
 
        exit $rc