tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()
We do ignore trailing slash on a directory, so pathspec "abc/" matches directory "abc". A submodule is also a directory. Apply the same logic to it. This makes "git log submodule-path" and "git log submodule-path/" produce the same output. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1649612a22
commit
74b4f7f277
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user