summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-01-27 10:45:43 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-01-27 10:45:44 -0800
commit017f804efc47234682fb0103a51ac453d96c56c1 (patch)
treebe9f50bd1d08e45bde01e5694dbcdd5c33e75dc1
parentMerge branch 'pw/git-p4' (diff)
parenttree-walk.c: ignore trailing slash on submodule in tree_entry_interesting() (diff)
downloadtgif-017f804efc47234682fb0103a51ac453d96c56c1.tar.xz
Merge branch 'nd/negative-pathspec'
* nd/negative-pathspec: tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()
-rwxr-xr-xt/t4010-diff-pathspec.sh17
-rw-r--r--tree-walk.c2
2 files changed, 18 insertions, 1 deletions
diff --git a/t/t4010-diff-pathspec.sh b/t/t4010-diff-pathspec.sh
index af5134b70c..15a491295e 100755
--- a/t/t4010-diff-pathspec.sh
+++ b/t/t4010-diff-pathspec.sh
@@ -110,4 +110,21 @@ test_expect_success 'diff-tree -r with wildcard' '
test_cmp expected result
'
+test_expect_success 'setup submodules' '
+ test_tick &&
+ git init submod &&
+ ( cd submod && test_commit first; ) &&
+ git add submod &&
+ git commit -m first &&
+ ( cd submod && test_commit second; ) &&
+ git add submod &&
+ git commit -m second
+'
+
+test_expect_success 'diff-tree ignores trailing slash on submodule path' '
+ git diff --name-only HEAD^ HEAD submod >expect &&
+ git diff --name-only HEAD^ HEAD submod/ >actual &&
+ test_cmp expect actual
+'
+
test_done
diff --git a/tree-walk.c b/tree-walk.c
index 680afda060..c29b6a3a56 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -543,7 +543,7 @@ static int match_entry(const struct pathspec_item *item,
if (matchlen > pathlen) {
if (match[pathlen] != '/')
return 0;
- if (!S_ISDIR(entry->mode))
+ if (!S_ISDIR(entry->mode) && !S_ISGITLINK(entry->mode))
return 0;
}