]> git.ipfire.org Git - thirdparty/git.git/commitdiff
tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 23 Jan 2014 13:22:05 +0000 (20:22 +0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Jan 2014 21:03:00 +0000 (13:03 -0800)
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>
t/t4010-diff-pathspec.sh
tree-walk.c

index af5134b70c6b4898aa652907d58191d45aa30ac4..15a491295ed3b85cb4a66d46e720e352787a8344 100755 (executable)
@@ -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
index 680afda060e28fd15c0064bd51cb829dc2469b1c..c29b6a3a566fe911271c9833e511190822aed723 100644 (file)
@@ -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;
        }