Merge branch 'nd/negative-pathspec'
authorJunio C Hamano <gitster@pobox.com>
Mon, 27 Jan 2014 18:45:43 +0000 (10:45 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Jan 2014 18:45:44 +0000 (10:45 -0800)
* nd/negative-pathspec:
tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()

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;
        }