[PATCH v2 9/9] tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Jan 24, 2014, 13:40 UTC
- Message-ID
- <1390570836-20394-10-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1390570836-20394-1-git-send-email-pclouds@gmail.com>
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.
Reported-by: Paweł Sikora <pawel.sikora@agmk.net> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- t/t4010-diff-pathspec.sh | 6 ++++++ tree-walk.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/t/t4010-diff-pathspec.sh b/t/t4010-diff-pathspec.sh index 167af53..2424af0 100755 --- a/t/t4010-diff-pathspec.sh +++ b/t/t4010-diff-pathspec.sh @@ -127,4 +127,10 @@ test_expect_success 'diff-cache ignores trailing slash on submodule path' ' test_cmp expect actual ' +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 680afda..c29b6a3 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; }
-- 1.8.5.2.240.g8478abd