Commit f9ad901f authored by David Aguilar's avatar David Aguilar Committed by Junio C Hamano

git-mergetool--lib: Make vimdiff retain the current directory

When using difftool with vimdiff it can be unexpected that
the current directory changes to the root of the project.
Tell vim to chdir to the value of $GIT_PREFIX to fix this.

Care is taken to quote the variable so that vim expands it.
This avoids problems when directory names contain spaces.
Signed-off-by: David Aguilar's avatarDavid Aguilar <davvid@gmail.com>
Reported-by: 's avatarFrédéric Heitzmann <frederic.heitzmann@gmail.com>
Signed-off-by: 's avatarJunio C Hamano <gitster@pobox.com>
parent 26b05251
......@@ -86,6 +86,11 @@ get_merge_tool_cmd () {
}
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
......@@ -188,6 +193,7 @@ run_merge_tool () {
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
-c 'cd $GIT_PREFIX' \
"$LOCAL" "$REMOTE"
fi
;;
......@@ -199,6 +205,7 @@ run_merge_tool () {
check_unchanged
else
"$merge_tool_path" -R -f -d -c "wincmd l" \
-c 'cd $GIT_PREFIX' \
"$LOCAL" "$REMOTE"
fi
;;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment