Code

Remove the use of '--' in merge program invocation
authorPatrick Higgins <patrick.higgins@cexp.com>
Mon, 16 Jun 2008 23:33:41 +0000 (17:33 -0600)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Jun 2008 21:13:55 +0000 (14:13 -0700)
Put a "./" at the beginning of all paths given to the merge program so
that filenames beginning with a '-' character don't get interpreted as
options.

This deals with a problem where kdiff3 can be compiled with or without
support for the '--' separator between options and filenames.

Signed-off-by: Patrick Higgins <patrick.higgins@cexp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-mergetool.sh

index fcdec4a504acd5681e0695fb9657d6a1cd513ab0..94187c306ccb05d977f2bb35e81828130ab49a61 100755 (executable)
@@ -141,10 +141,10 @@ merge_file () {
     fi
 
     ext="$$$(expr "$MERGED" : '.*\(\.[^/]*\)$')"
-    BACKUP="$MERGED.BACKUP.$ext"
-    LOCAL="$MERGED.LOCAL.$ext"
-    REMOTE="$MERGED.REMOTE.$ext"
-    BASE="$MERGED.BASE.$ext"
+    BACKUP="./$MERGED.BACKUP.$ext"
+    LOCAL="./$MERGED.LOCAL.$ext"
+    REMOTE="./$MERGED.REMOTE.$ext"
+    BASE="./$MERGED.BASE.$ext"
 
     mv -- "$MERGED" "$BACKUP"
     cp -- "$BACKUP" "$MERGED"
@@ -183,29 +183,29 @@ merge_file () {
        kdiff3)
            if base_present ; then
                ("$merge_tool_path" --auto --L1 "$MERGED (Base)" --L2 "$MERGED (Local)" --L3 "$MERGED (Remote)" \
-                   -o "$MERGED" -- "$BASE" "$LOCAL" "$REMOTE" > /dev/null 2>&1)
+                   -o "$MERGED" "$BASE" "$LOCAL" "$REMOTE" > /dev/null 2>&1)
            else
                ("$merge_tool_path" --auto --L1 "$MERGED (Local)" --L2 "$MERGED (Remote)" \
-                   -o "$MERGED" -- "$LOCAL" "$REMOTE" > /dev/null 2>&1)
+                   -o "$MERGED" "$LOCAL" "$REMOTE" > /dev/null 2>&1)
            fi
            status=$?
            ;;
        tkdiff)
            if base_present ; then
-               "$merge_tool_path" -a "$BASE" -o "$MERGED" -- "$LOCAL" "$REMOTE"
+               "$merge_tool_path" -a "$BASE" -o "$MERGED" "$LOCAL" "$REMOTE"
            else
-               "$merge_tool_path" -o "$MERGED" -- "$LOCAL" "$REMOTE"
+               "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"
            fi
            status=$?
            ;;
        meld|vimdiff)
            touch "$BACKUP"
-           "$merge_tool_path" -- "$LOCAL" "$MERGED" "$REMOTE"
+           "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
            check_unchanged
            ;;
        gvimdiff)
            touch "$BACKUP"
-           "$merge_tool_path" -f -- "$LOCAL" "$MERGED" "$REMOTE"
+           "$merge_tool_path" -f "$LOCAL" "$MERGED" "$REMOTE"
            check_unchanged
            ;;
        xxdiff)
@@ -215,13 +215,13 @@ merge_file () {
                    -R 'Accel.SaveAsMerged: "Ctrl-S"' \
                    -R 'Accel.Search: "Ctrl+F"' \
                    -R 'Accel.SearchForward: "Ctrl-G"' \
-                   --merged-file "$MERGED" -- "$LOCAL" "$BASE" "$REMOTE"
+                   --merged-file "$MERGED" "$LOCAL" "$BASE" "$REMOTE"
            else
                "$merge_tool_path" -X --show-merged-pane \
                    -R 'Accel.SaveAsMerged: "Ctrl-S"' \
                    -R 'Accel.Search: "Ctrl+F"' \
                    -R 'Accel.SearchForward: "Ctrl-G"' \
-                   --merged-file "$MERGED" -- "$LOCAL" "$REMOTE"
+                   --merged-file "$MERGED" "$LOCAL" "$REMOTE"
            fi
            check_unchanged
            ;;