Revision 29209cbe58e7a977ae7267b11da19250b6878028 authored by Jeff King on 11 March 2010, 07:15:43 UTC, committed by Junio C Hamano on 14 March 2010, 07:23:08 UTC
As we walk the directory tree, if we see an ignored path, we
want to add it to the ignored list only if it matches any
pathspec that we were given. We used to check for the
pathspec to appear explicitly. E.g., if we see "subdir/file"
and it is excluded, we check to see if we have "subdir/file"
in our pathspec.

However, this interacts badly with the optimization to avoid
recursing into ignored subdirectories. If "subdir" as a
whole is ignored, then we never recurse, and consider only
whether "subdir" itself is in our pathspec.  It would not
match a pathspec of "subdir/file" explicitly, even though it
is the reason that subdir/file would be excluded.

This manifests itself to the user as "git add subdir/file"
failing to correctly note that the pathspec was ignored.

This patch extends the in_pathspec logic to include prefix
directory case.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0d7c243
History
File Mode Size
Documentation
block-sha1
compat
contrib
git-gui
git_remote_helpers
gitk-git
gitweb
perl
ppc
t
templates
xdiff
.gitattributes -rw-r--r-- 105 bytes
.gitignore -rw-r--r-- 2.7 KB
.mailmap -rw-r--r-- 2.5 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 738 bytes
INSTALL -rw-r--r-- 6.3 KB
Makefile -rw-r--r-- 58.9 KB
README -rw-r--r-- 2.4 KB
RelNotes l--------- 32 bytes
abspath.c -rw-r--r-- 2.8 KB
advice.c -rw-r--r-- 672 bytes
advice.h -rw-r--r-- 236 bytes
alias.c -rw-r--r-- 1.4 KB
alloc.c -rw-r--r-- 1.7 KB
archive-tar.c -rw-r--r-- 6.3 KB
archive-zip.c -rw-r--r-- 7.3 KB
archive.c -rw-r--r-- 9.7 KB
archive.h -rw-r--r-- 927 bytes
attr.c -rw-r--r-- 16.0 KB
attr.h -rw-r--r-- 978 bytes
base85.c -rw-r--r-- 2.9 KB
bisect.c -rw-r--r-- 23.6 KB
bisect.h -rw-r--r-- 900 bytes
blob.c -rw-r--r-- 1.1 KB
blob.h -rw-r--r-- 311 bytes
branch.c -rw-r--r-- 4.9 KB
branch.h -rw-r--r-- 1.0 KB
builtin-add.c -rw-r--r-- 9.2 KB
builtin-annotate.c -rw-r--r-- 446 bytes
builtin-apply.c -rw-r--r-- 91.5 KB
builtin-archive.c -rw-r--r-- 3.3 KB
builtin-bisect--helper.c -rw-r--r-- 617 bytes
builtin-blame.c -rw-r--r-- 62.8 KB
builtin-branch.c -rw-r--r-- 17.2 KB
builtin-bundle.c -rw-r--r-- 1.8 KB
builtin-cat-file.c -rw-r--r-- 5.6 KB
builtin-check-attr.c -rw-r--r-- 3.0 KB
builtin-check-ref-format.c -rw-r--r-- 1.4 KB
builtin-checkout-index.c -rw-r--r-- 8.1 KB
builtin-checkout.c -rw-r--r-- 22.4 KB
builtin-clean.c -rw-r--r-- 4.1 KB
builtin-clone.c -rw-r--r-- 17.0 KB
builtin-commit-tree.c -rw-r--r-- 3.7 KB
builtin-commit.c -rw-r--r-- 33.5 KB
builtin-config.c -rw-r--r-- 12.9 KB
builtin-count-objects.c -rw-r--r-- 3.0 KB
builtin-describe.c -rw-r--r-- 9.9 KB
builtin-diff-files.c -rw-r--r-- 1.9 KB
builtin-diff-index.c -rw-r--r-- 1.2 KB
builtin-diff-tree.c -rw-r--r-- 4.2 KB
builtin-diff.c -rw-r--r-- 10.6 KB
builtin-fast-export.c -rw-r--r-- 16.0 KB
builtin-fetch-pack.c -rw-r--r-- 22.7 KB
builtin-fetch.c -rw-r--r-- 24.1 KB
builtin-fmt-merge-msg.c -rw-r--r-- 8.7 KB
builtin-for-each-ref.c -rw-r--r-- 22.4 KB
builtin-fsck.c -rw-r--r-- 15.8 KB
builtin-gc.c -rw-r--r-- 6.1 KB
builtin-grep.c -rw-r--r-- 23.1 KB
builtin-help.c -rw-r--r-- 11.1 KB
builtin-init-db.c -rw-r--r-- 13.4 KB
builtin-log.c -rw-r--r-- 34.9 KB
builtin-ls-files.c -rw-r--r-- 14.0 KB
builtin-ls-remote.c -rw-r--r-- 2.4 KB
builtin-ls-tree.c -rw-r--r-- 4.4 KB
builtin-mailinfo.c -rw-r--r-- 23.5 KB
builtin-mailsplit.c -rw-r--r-- 6.3 KB
builtin-merge-base.c -rw-r--r-- 1.4 KB
builtin-merge-file.c -rw-r--r-- 2.5 KB
builtin-merge-ours.c -rw-r--r-- 926 bytes
builtin-merge-recursive.c -rw-r--r-- 1.8 KB
builtin-merge.c -rw-r--r-- 32.1 KB
builtin-mktree.c -rw-r--r-- 5.0 KB
builtin-mv.c -rw-r--r-- 5.9 KB
builtin-name-rev.c -rw-r--r-- 7.1 KB
builtin-pack-objects.c -rw-r--r-- 59.3 KB
builtin-pack-refs.c -rw-r--r-- 589 bytes
builtin-prune-packed.c -rw-r--r-- 1.9 KB
builtin-prune.c -rw-r--r-- 3.8 KB
builtin-push.c -rw-r--r-- 5.7 KB
builtin-read-tree.c -rw-r--r-- 5.5 KB
builtin-receive-pack.c -rw-r--r-- 16.7 KB
builtin-reflog.c -rw-r--r-- 17.7 KB
builtin-remote.c -rw-r--r-- 36.0 KB
builtin-replace.c -rw-r--r-- 3.9 KB
builtin-rerere.c -rw-r--r-- 3.5 KB
builtin-reset.c -rw-r--r-- 8.8 KB
builtin-rev-list.c -rw-r--r-- 9.4 KB
builtin-rev-parse.c -rw-r--r-- 15.1 KB
builtin-revert.c -rw-r--r-- 11.3 KB
builtin-rm.c -rw-r--r-- 7.0 KB
builtin-send-pack.c -rw-r--r-- 15.6 KB
builtin-shortlog.c -rw-r--r-- 8.6 KB
builtin-show-branch.c -rw-r--r-- 23.0 KB
builtin-show-ref.c -rw-r--r-- 6.3 KB
builtin-stripspace.c -rw-r--r-- 2.0 KB
builtin-symbolic-ref.c -rw-r--r-- 1.3 KB
builtin-tag.c -rw-r--r-- 11.3 KB
builtin-tar-tree.c -rw-r--r-- 2.5 KB
builtin-unpack-objects.c -rw-r--r-- 12.9 KB
builtin-update-index.c -rw-r--r-- 19.2 KB
builtin-update-ref.c -rw-r--r-- 1.6 KB
builtin-update-server-info.c -rw-r--r-- 591 bytes
builtin-upload-archive.c -rw-r--r-- 4.0 KB
builtin-verify-pack.c -rw-r--r-- 4.1 KB
builtin-verify-tag.c -rw-r--r-- 2.7 KB
builtin-write-tree.c -rw-r--r-- 1.5 KB
builtin.h -rw-r--r-- 7.3 KB
bundle.c -rw-r--r-- 10.2 KB
bundle.h -rw-r--r-- 627 bytes
cache-tree.c -rw-r--r-- 15.6 KB
cache-tree.h -rw-r--r-- 1.4 KB
cache.h -rw-r--r-- 35.4 KB
check-builtins.sh -rwxr-xr-x 588 bytes
check-racy.c -rw-r--r-- 538 bytes
check_bindir -rwxr-xr-x 369 bytes
color.c -rw-r--r-- 4.5 KB
color.h -rw-r--r-- 1.4 KB
combine-diff.c -rw-r--r-- 27.8 KB
command-list.txt -rw-r--r-- 7.7 KB
commit.c -rw-r--r-- 17.5 KB
commit.h -rw-r--r-- 4.9 KB
config.c -rw-r--r-- 29.7 KB
config.mak.in -rw-r--r-- 1.5 KB
configure.ac -rw-r--r-- 23.8 KB
connect.c -rw-r--r-- 13.5 KB
convert.c -rw-r--r-- 14.1 KB
copy.c -rw-r--r-- 1.6 KB
csum-file.c -rw-r--r-- 2.5 KB
csum-file.h -rw-r--r-- 761 bytes
ctype.c -rw-r--r-- 874 bytes
daemon.c -rw-r--r-- 24.4 KB
date.c -rw-r--r-- 21.7 KB
decorate.c -rw-r--r-- 1.8 KB
decorate.h -rw-r--r-- 400 bytes
delta.h -rw-r--r-- 3.4 KB
diff-delta.c -rw-r--r-- 15.3 KB
diff-lib.c -rw-r--r-- 12.9 KB
diff-no-index.c -rw-r--r-- 6.1 KB
diff.c -rw-r--r-- 99.1 KB
diff.h -rw-r--r-- 8.9 KB
diffcore-break.c -rw-r--r-- 8.7 KB
diffcore-delta.c -rw-r--r-- 5.4 KB
diffcore-order.c -rw-r--r-- 2.2 KB
diffcore-pickaxe.c -rw-r--r-- 3.2 KB
diffcore-rename.c -rw-r--r-- 16.9 KB
diffcore.h -rw-r--r-- 4.0 KB
dir.c -rw-r--r-- 23.8 KB
dir.h -rw-r--r-- 2.5 KB
editor.c -rw-r--r-- 1.5 KB
entry.c -rw-r--r-- 6.0 KB
environment.c -rw-r--r-- 4.8 KB
exec_cmd.c -rw-r--r-- 3.3 KB
exec_cmd.h -rw-r--r-- 487 bytes
fast-import.c -rw-r--r-- 64.8 KB
fetch-pack.h -rw-r--r-- 479 bytes
fixup-builtins -rwxr-xr-x 432 bytes
fsck.c -rw-r--r-- 8.0 KB
fsck.h -rw-r--r-- 1.0 KB
generate-cmdlist.sh -rwxr-xr-x 443 bytes
git-add--interactive.perl -rwxr-xr-x 34.4 KB
git-am.sh -rwxr-xr-x 17.5 KB
git-archimport.perl -rwxr-xr-x 36.0 KB
git-bisect.sh -rwxr-xr-x 9.8 KB
git-compat-util.h -rw-r--r-- 11.4 KB
git-cvsexportcommit.perl -rwxr-xr-x 12.4 KB
git-cvsimport.perl -rwxr-xr-x 28.0 KB
git-cvsserver.perl -rwxr-xr-x 114.1 KB
git-difftool--helper.sh -rwxr-xr-x 1.6 KB
git-difftool.perl -rwxr-xr-x 2.0 KB
git-filter-branch.sh -rwxr-xr-x 11.9 KB
git-instaweb.sh -rwxr-xr-x 11.0 KB
git-lost-found.sh -rwxr-xr-x 554 bytes
git-merge-octopus.sh -rwxr-xr-x 2.0 KB
git-merge-one-file.sh -rwxr-xr-x 3.7 KB
git-merge-resolve.sh -rwxr-xr-x 944 bytes
git-mergetool--lib.sh -rw-r--r-- 8.8 KB
git-mergetool.sh -rwxr-xr-x 6.0 KB
git-notes.sh -rwxr-xr-x 2.7 KB
git-parse-remote.sh -rwxr-xr-x 1.9 KB
git-pull.sh -rwxr-xr-x 6.8 KB
git-quiltimport.sh -rwxr-xr-x 3.3 KB
git-rebase--interactive.sh -rwxr-xr-x 18.7 KB
git-rebase.sh -rwxr-xr-x 13.6 KB
git-relink.perl -rwxr-xr-x 4.0 KB
git-repack.sh -rwxr-xr-x 4.4 KB
git-request-pull.sh -rwxr-xr-x 1.6 KB
git-send-email.perl -rwxr-xr-x 33.1 KB
git-sh-setup.sh -rwxr-xr-x 3.9 KB
git-stash.sh -rwxr-xr-x 8.4 KB
git-submodule.sh -rwxr-xr-x 16.9 KB
git-svn.perl -rwxr-xr-x 167.4 KB
git-web--browse.sh -rwxr-xr-x 3.9 KB
git.c -rw-r--r-- 14.4 KB
git.spec.in -rw-r--r-- 9.6 KB
graph.c -rw-r--r-- 34.6 KB
graph.h -rw-r--r-- 2.5 KB
grep.c -rw-r--r-- 17.5 KB
grep.h -rw-r--r-- 2.0 KB
hash-object.c -rw-r--r-- 3.6 KB
hash.c -rw-r--r-- 2.5 KB
hash.h -rw-r--r-- 1.1 KB
help.c -rw-r--r-- 8.4 KB
help.h -rw-r--r-- 751 bytes
http-backend.c -rw-r--r-- 14.0 KB
http-fetch.c -rw-r--r-- 2.3 KB
http-push.c -rw-r--r-- 54.2 KB
http-walker.c -rw-r--r-- 13.7 KB
http.c -rw-r--r-- 30.2 KB
http.h -rw-r--r-- 5.4 KB
ident.c -rw-r--r-- 5.9 KB
imap-send.c -rw-r--r-- 31.3 KB
index-pack.c -rw-r--r-- 26.7 KB
levenshtein.c -rw-r--r-- 2.5 KB
levenshtein.h -rw-r--r-- 201 bytes
list-objects.c -rw-r--r-- 4.6 KB
list-objects.h -rw-r--r-- 422 bytes
ll-merge.c -rw-r--r-- 8.8 KB
ll-merge.h -rw-r--r-- 304 bytes
lockfile.c -rw-r--r-- 6.2 KB
log-tree.c -rw-r--r-- 14.0 KB
log-tree.h -rw-r--r-- 783 bytes
mailmap.c -rw-r--r-- 6.6 KB
mailmap.h -rw-r--r-- 350 bytes
match-trees.c -rw-r--r-- 7.1 KB
merge-file.c -rw-r--r-- 2.4 KB
merge-index.c -rw-r--r-- 2.2 KB
merge-recursive.c -rw-r--r-- 38.4 KB
merge-recursive.h -rw-r--r-- 1.4 KB
merge-tree.c -rw-r--r-- 8.1 KB
mktag.c -rw-r--r-- 5.2 KB
name-hash.c -rw-r--r-- 2.5 KB
notes.c -rw-r--r-- 12.4 KB
notes.h -rw-r--r-- 295 bytes
object.c -rw-r--r-- 6.1 KB
object.h -rw-r--r-- 2.7 KB
pack-check.c -rw-r--r-- 4.5 KB
pack-redundant.c -rw-r--r-- 15.0 KB
pack-refs.c -rw-r--r-- 2.8 KB
pack-refs.h -rw-r--r-- 465 bytes
pack-revindex.c -rw-r--r-- 4.0 KB
pack-revindex.h -rw-r--r-- 223 bytes
pack-write.c -rw-r--r-- 7.3 KB
pack.h -rw-r--r-- 2.2 KB
pager.c -rw-r--r-- 2.1 KB
parse-options.c -rw-r--r-- 15.3 KB
parse-options.h -rw-r--r-- 6.9 KB
patch-delta.c -rw-r--r-- 2.2 KB
patch-id.c -rw-r--r-- 1.6 KB
patch-ids.c -rw-r--r-- 2.5 KB
patch-ids.h -rw-r--r-- 490 bytes
path.c -rw-r--r-- 14.2 KB
pkt-line.c -rw-r--r-- 3.3 KB
pkt-line.h -rw-r--r-- 589 bytes
preload-index.c -rw-r--r-- 2.3 KB
pretty.c -rw-r--r-- 26.7 KB
progress.c -rw-r--r-- 6.5 KB
progress.h -rw-r--r-- 504 bytes
quote.c -rw-r--r-- 10.1 KB
quote.h -rw-r--r-- 2.6 KB
reachable.c -rw-r--r-- 5.6 KB
reachable.h -rw-r--r-- 127 bytes
read-cache.c -rw-r--r-- 45.3 KB
reflog-walk.c -rw-r--r-- 7.7 KB
reflog-walk.h -rw-r--r-- 664 bytes
refs.c -rw-r--r-- 42.2 KB
refs.h -rw-r--r-- 3.7 KB
remote-curl.c -rw-r--r-- 18.4 KB
remote.c -rw-r--r-- 39.8 KB
remote.h -rw-r--r-- 4.1 KB
replace_object.c -rw-r--r-- 2.6 KB
rerere.c -rw-r--r-- 9.3 KB
rerere.h -rw-r--r-- 259 bytes
revision.c -rw-r--r-- 51.0 KB
revision.h -rw-r--r-- 4.2 KB
run-command.c -rw-r--r-- 8.5 KB
run-command.h -rw-r--r-- 2.6 KB
send-pack.h -rw-r--r-- 374 bytes
server-info.c -rw-r--r-- 5.2 KB
setup.c -rw-r--r-- 12.8 KB
sha1-lookup.c -rw-r--r-- 7.8 KB
sha1-lookup.h -rw-r--r-- 403 bytes
sha1_file.c -rw-r--r-- 65.1 KB
sha1_name.c -rw-r--r-- 19.6 KB
shallow.c -rw-r--r-- 2.3 KB
shell.c -rw-r--r-- 2.2 KB
shortlog.h -rw-r--r-- 450 bytes
show-index.c -rw-r--r-- 2.2 KB
sideband.c -rw-r--r-- 3.4 KB
sideband.h -rw-r--r-- 326 bytes
sigchain.c -rw-r--r-- 969 bytes
sigchain.h -rw-r--r-- 215 bytes
strbuf.c -rw-r--r-- 7.7 KB
strbuf.h -rw-r--r-- 4.9 KB
string-list.c -rw-r--r-- 4.2 KB
string-list.h -rw-r--r-- 1.7 KB
submodule.c -rw-r--r-- 3.3 KB
submodule.h -rw-r--r-- 208 bytes
symlinks.c -rw-r--r-- 8.6 KB
tag.c -rw-r--r-- 2.7 KB
tag.h -rw-r--r-- 471 bytes
tar.h -rw-r--r-- 644 bytes
test-chmtime.c -rw-r--r-- 2.6 KB
test-ctype.c -rw-r--r-- 1.4 KB
test-date.c -rw-r--r-- 1.3 KB
test-delta.c -rw-r--r-- 1.8 KB
test-dump-cache-tree.c -rw-r--r-- 1.5 KB
test-genrandom.c -rw-r--r-- 722 bytes
test-match-trees.c -rw-r--r-- 588 bytes
test-parse-options.c -rw-r--r-- 3.0 KB
test-path-utils.c -rw-r--r-- 872 bytes
test-sha1.c -rw-r--r-- 816 bytes
test-sha1.sh -rwxr-xr-x 1.9 KB
test-sigchain.c -rw-r--r-- 344 bytes
thread-utils.c -rw-r--r-- 965 bytes
thread-utils.h -rw-r--r-- 109 bytes
trace.c -rw-r--r-- 3.5 KB
transport-helper.c -rw-r--r-- 12.2 KB
transport.c -rw-r--r-- 24.4 KB
transport.h -rw-r--r-- 4.0 KB
tree-diff.c -rw-r--r-- 11.9 KB
tree-walk.c -rw-r--r-- 5.3 KB
tree-walk.h -rw-r--r-- 1.7 KB
tree.c -rw-r--r-- 7.0 KB
tree.h -rw-r--r-- 883 bytes
unimplemented.sh -rw-r--r-- 100 bytes
unpack-file.c -rw-r--r-- 867 bytes
unpack-trees.c -rw-r--r-- 24.8 KB
unpack-trees.h -rw-r--r-- 1.4 KB
upload-pack.c -rw-r--r-- 17.5 KB
usage.c -rw-r--r-- 2.4 KB
userdiff.c -rw-r--r-- 6.0 KB
userdiff.h -rw-r--r-- 477 bytes
utf8.c -rw-r--r-- 13.0 KB
utf8.h -rw-r--r-- 685 bytes
var.c -rw-r--r-- 1.8 KB
walker.c -rw-r--r-- 7.2 KB
walker.h -rw-r--r-- 1.1 KB
wrap-for-bin.sh -rw-r--r-- 526 bytes
wrapper.c -rw-r--r-- 6.1 KB
write_or_die.c -rw-r--r-- 2.0 KB
ws.c -rw-r--r-- 8.2 KB
wt-status.c -rw-r--r-- 18.5 KB
wt-status.h -rw-r--r-- 1.3 KB
xdiff-interface.c -rw-r--r-- 7.9 KB
xdiff-interface.h -rw-r--r-- 1.1 KB

README

back to top