diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index fb3f52ba2507b4fb78db150b5c183f24bd2c57c1..91f90acfba2a710644f4a076d27d50e0fbb33c2d 100644 (file)
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
}
run_merge_tool () {
}
run_merge_tool () {
+ # If GIT_PREFIX is empty then we cannot use it in tools
+ # that expect to be able to chdir() to its value.
+ GIT_PREFIX=${GIT_PREFIX:-.}
+ export GIT_PREFIX
+
merge_tool_path="$(get_merge_tool_path "$1")" || exit
base_present="$2"
status=0
merge_tool_path="$(get_merge_tool_path "$1")" || exit
base_present="$2"
status=0
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
+ -c 'cd $GIT_PREFIX' \
"$LOCAL" "$REMOTE"
fi
;;
"$LOCAL" "$REMOTE"
fi
;;
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
+ -c 'cd $GIT_PREFIX' \
"$LOCAL" "$REMOTE"
fi
;;
"$LOCAL" "$REMOTE"
fi
;;
;;
p4merge)
if merge_mode; then
;;
p4merge)
if merge_mode; then
- touch "$BACKUP"
- if $base_present; then
- "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
- else
- "$merge_tool_path" "$LOCAL" "$LOCAL" "$REMOTE" "$MERGED"
- fi
+ touch "$BACKUP"
+ $base_present || >"$BASE"
+ "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
check_unchanged
else
"$merge_tool_path" "$LOCAL" "$REMOTE"
check_unchanged
else
"$merge_tool_path" "$LOCAL" "$REMOTE"