1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-12 20:23:02 +01:00
git/builtin
Nguyễn Thái Ngọc Duy 6330a17199 parse_pathspec: add special flag for max_depth feature
match_pathspec_depth() and tree_entry_interesting() check max_depth
field in order to support "git grep --max-depth". The feature
activation is tied to "recursive" field, which led to some unwanted
activation, e.g. 5c8eeb8 (diff-index: enable recursive pathspec
matching in unpack_trees - 2012-01-15).

This patch decouples the activation from "recursive" field, puts it in
"magic" field instead. This makes sure that only "git grep" can
activate this feature. And because parse_pathspec knows when the
feature is not used, it does not need to sort pathspec (required for
max_depth to work correctly). A small win for non-grep cases.

Even though a new magic flag is introduced, no magic syntax is. The
magic can be only enabled by parse_pathspec() caller. We might someday
want to support ":(maxdepth:10)src." It all depends on actual use
cases.

max_depth feature cannot be enabled via init_pathspec() anymore. But
that's ok because init_pathspec() is on its way to /dev/null.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-07-15 10:56:06 -07:00
..
add.c Merge branch 'jc/add-ignore-removal' 2013-04-26 15:28:09 -07:00
annotate.c
apply.c Merge branch 'tr/maint-apply-non-git-patch-parsefix' 2013-06-26 15:08:09 -07:00
archive.c
bisect--helper.c
blame.c Merge branch 'tr/line-log' 2013-06-02 16:00:44 -07:00
branch.c branch: colour upstream branches 2013-04-15 11:04:44 -07:00
bundle.c
cat-file.c cat-file: print tags raw for "cat-file -p" 2013-04-17 14:48:45 -07:00
check-attr.c
check-ignore.c Merge branch 'as/check-ignore' 2013-05-29 14:23:40 -07:00
check-ref-format.c
checkout-index.c
checkout.c Merge branch 'rr/rebase-checkout-reflog' 2013-07-11 13:04:33 -07:00
clean.c clean: remove unused variable "seen" 2013-07-15 10:56:06 -07:00
clone.c Merge branch 'ms/remote-tracking-branches-in-doc' 2013-07-12 12:04:07 -07:00
column.c
commit-tree.c
commit.c Merge branch 'jg/status-config' 2013-07-11 13:05:34 -07:00
config.c Merge branch 'mm/color-auto-default' 2013-06-20 16:02:33 -07:00
count-objects.c count-objects: add -H option to humanize sizes 2013-04-10 13:27:26 -07:00
credential.c
describe.c Merge branch 'mh/reflife' 2013-06-14 08:46:14 -07:00
diff-files.c
diff-index.c
diff-tree.c
diff.c cmd_diff(): make it obvious which cases are exclusive of each other 2013-05-28 09:25:01 -07:00
fast-export.c fast-{import,export}: use get_sha1_hex() to read from marks file 2013-05-07 16:20:40 -07:00
fetch-pack.c
fetch.c Merge branch 'mh/reflife' 2013-06-14 08:46:14 -07:00
fmt-merge-msg.c Merge branch 'rt/commentchar-fmt-merge-msg' into maint 2013-04-26 11:10:47 -07:00
for-each-ref.c
fsck.c fsck: don't put a void*-shaped peg in a char*-shaped hole 2013-05-28 09:25:01 -07:00
gc.c
grep.c parse_pathspec: add special flag for max_depth feature 2013-07-15 10:56:06 -07:00
hash-object.c
help.c Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' 2013-06-26 15:07:48 -07:00
index-pack.c clone: open a shortcut for connectivity check 2013-05-28 08:07:20 -07:00
init-db.c
log.c Merge branch 'jc/topo-author-date-sort' 2013-07-01 12:41:23 -07:00
ls-files.c move struct pathspec and related functions to pathspec.[ch] 2013-07-15 10:56:06 -07:00
ls-remote.c
ls-tree.c convert some get_pathspec() calls to parse_pathspec() 2013-07-15 10:56:06 -07:00
mailinfo.c
mailsplit.c
merge-base.c use logical OR (||) instead of binary OR (|) in logical context 2013-06-13 14:47:07 -07:00
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c merge-tree: handle directory/empty conflict correctly 2013-05-06 22:17:00 -07:00
merge.c Merge branch 'ms/remote-tracking-branches-in-doc' 2013-07-12 12:04:07 -07:00
mktag.c
mktree.c
mv.c pathspec: add copy_pathspec 2013-07-15 10:56:06 -07:00
name-rev.c name-rev: allow to specify a subpath for --refs option 2013-06-18 12:02:02 -07:00
notes.c Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' 2013-06-26 15:07:48 -07:00
pack-objects.c
pack-redundant.c
pack-refs.c pack-refs: merge code from pack-refs.{c,h} into refs.{c,h} 2013-05-01 15:33:11 -07:00
patch-id.c
prune-packed.c prune-packed: avoid implying "1" is DRY_RUN in prune_packed_objects() 2013-05-28 09:20:54 -07:00
prune.c Merge branch 'nd/prune-packed-dryrun-verbose' 2013-06-06 12:17:52 -07:00
push.c Merge branch 'jk/pull-to-integrate' 2013-07-12 12:04:06 -07:00
read-tree.c diff-lib, read-tree, unpack-trees: mark cache_entry array paramters const 2013-06-02 15:31:14 -07:00
receive-pack.c Merge branch 'jk/receive-pack-deadlocks-with-early-failure' into maint 2013-04-26 11:12:17 -07:00
reflog.c Merge branch 'jc/prune-all' 2013-05-29 14:23:04 -07:00
remote-ext.c
remote-fd.c
remote.c remote: check for superfluous arguments in 'git remote add' 2013-04-24 13:12:51 -07:00
replace.c fix "builtin-*" references to be "builtin/*" 2013-06-18 11:05:51 -07:00
rerere.c
reset.c pretty: --format output should honor logOutputEncoding 2013-06-26 11:40:31 -07:00
rev-list.c pretty: --format output should honor logOutputEncoding 2013-06-26 11:40:31 -07:00
rev-parse.c rev-parse: add --prefix option 2013-06-17 13:30:01 -07:00
revert.c cherry-pick/revert: make usage say '<commit-ish>...' 2013-04-24 09:48:01 -07:00
rm.c rm: introduce advice.rmHints to shorten messages 2013-06-12 16:59:55 -07:00
send-pack.c
shortlog.c pretty: --format output should honor logOutputEncoding 2013-06-26 11:40:31 -07:00
show-branch.c Merge branch 'jc/topo-author-date-sort' 2013-07-01 12:41:23 -07:00
show-ref.c exclude_existing(): set existing_refs.strdup_strings 2013-06-02 15:28:47 -07:00
stripspace.c
symbolic-ref.c
tag.c
tar-tree.c
unpack-file.c
unpack-objects.c
update-index.c convert some get_pathspec() calls to parse_pathspec() 2013-07-15 10:56:06 -07:00
update-ref.c
update-server-info.c
upload-archive.c
var.c
verify-pack.c
verify-tag.c
write-tree.c