summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 26b2800)
raw | patch | inline | side by side (parent: 26b2800)
author | Junio C Hamano <gitster@pobox.com> | |
Thu, 27 Sep 2007 21:41:23 +0000 (14:41 -0700) | ||
committer | Theodore Ts'o <tytso@mit.edu> | |
Sat, 29 Sep 2007 00:13:14 +0000 (20:13 -0400) |
When mergetool is run from a subdirectory, "ls-files -u" nicely
limits the output to conflicted files in that directory, but
we need to give the full path to cat-file plumbing to grab the
contents of stages.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
limits the output to conflicted files in that directory, but
we need to give the full path to cat-file plumbing to grab the
contents of stages.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
git-mergetool.sh | patch | blob | history |
diff --git a/git-mergetool.sh b/git-mergetool.sh
index a0e44f71c4acd5d995bf823913ba63e119ed2e68..e00682a513d1e8ea438b2ecedb2c6f3652a2c588 100755 (executable)
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
SUBDIRECTORY_OK=Yes
. git-sh-setup
require_work_tree
+prefix=$(git rev-parse --show-prefix)
# Returns true if the mode reflects a symlink
is_symlink () {
local_mode=`git ls-files -u -- "$path" | awk '{if ($3==2) print $1;}'`
remote_mode=`git ls-files -u -- "$path" | awk '{if ($3==3) print $1;}'`
- base_present && git cat-file blob ":1:$path" > "$BASE" 2>/dev/null
- local_present && git cat-file blob ":2:$path" > "$LOCAL" 2>/dev/null
- remote_present && git cat-file blob ":3:$path" > "$REMOTE" 2>/dev/null
+ base_present && git cat-file blob ":1:$prefix$path" >"$BASE" 2>/dev/null
+ local_present && git cat-file blob ":2:$prefix$path" >"$LOCAL" 2>/dev/null
+ remote_present && git cat-file blob ":3:$prefix$path" >"$REMOTE" 2>/dev/null
if test -z "$local_mode" -o -z "$remote_mode"; then
echo "Deleted merge conflict for '$path':"