git-commit-vandalism/builtin
Brandon Williams 75a6315f74 ls-files: add pathspec matching for submodules
Pathspecs can be a bit tricky when trying to apply them to submodules.
The main challenge is that the pathspecs will be with respect to the
superproject and not with respect to paths in the submodule.  The
approach this patch takes is to pass in the identical pathspec from the
superproject to the submodule in addition to the submodule-prefix, which
is the path from the root of the superproject to the submodule, and then
we can compare an entry in the submodule prepended with the
submodule-prefix to the pathspec in order to determine if there is a
match.

This patch also permits the pathspec logic to perform a prefix match against
submodules since a pathspec could refer to a file inside of a submodule.
Due to limitations in the wildmatch logic, a prefix match is only done
literally.  If any wildcard character is encountered we'll simply punt
and produce a false positive match.  More accurate matching will be done
once inside the submodule.  This is due to the superproject not knowing
what files could exist in the submodule.

Signed-off-by: Brandon Williams <bmwill@google.com>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-10-10 12:14:58 -07:00
..
add.c add: add --chmod=+x / --chmod=-x options 2016-06-07 17:43:39 -07:00
am.c am: refactor read_author_script() 2016-08-30 12:36:42 -07:00
annotate.c
apply.c Merge branch 'va/i18n-even-more' 2016-07-13 11:24:10 -07:00
archive.c
bisect--helper.c
blame.c Merge branch 'mh/blame-worktree' 2016-08-31 10:03:50 -07:00
branch.c Merge branch 'mh/split-under-lock' 2016-07-25 14:13:32 -07:00
bundle.c
cat-file.c Merge branch 'nd/pack-ofs-4gb-limit' into maint 2016-08-08 14:21:36 -07:00
check-attr.c give "nbuf" strbuf a more meaningful name 2016-02-01 13:43:02 -08:00
check-ignore.c give "nbuf" strbuf a more meaningful name 2016-02-01 13:43:02 -08:00
check-mailmap.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
check-ref-format.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
checkout-index.c checkout-index: disallow "--no-stage" option 2016-02-01 13:43:49 -08:00
checkout.c Merge branch 'sb/checkout-explit-detach-no-advice' 2016-08-19 15:34:15 -07:00
clean.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
clone.c clone: recursive and reference option triggers submodule alternates 2016-08-17 17:19:11 -07:00
column.c column: read lines with strbuf_getline() 2016-01-15 10:35:07 -08:00
commit-tree.c Merge branch 'jc/commit-tree-ignore-commit-gpgsign' 2016-05-13 13:18:27 -07:00
commit.c Merge branch 'jh/status-v2-porcelain' 2016-09-08 21:49:50 -07:00
config.c Merge branch 'js/commit-slab-decl-fix' 2016-08-10 12:33:20 -07:00
count-objects.c
credential.c
describe.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff-files.c diff: run arguments through precompose_argv 2016-05-13 14:35:49 -07:00
diff-index.c diff: run arguments through precompose_argv 2016-05-13 14:35:49 -07:00
diff-tree.c Merge branch 'ar/diff-args-osx-precompose' into maint 2016-06-06 14:27:35 -07:00
diff.c Merge branch 'ar/diff-args-osx-precompose' into maint 2016-06-06 14:27:35 -07:00
fast-export.c diff: convert struct diff_filespec to struct object_id 2016-06-28 11:39:02 -07:00
fetch-pack.c fetch-pack: fix object_id of exact sha1 2016-03-01 11:19:19 -08:00
fetch.c Merge branch 'jk/push-progress' 2016-08-03 15:10:28 -07:00
fmt-merge-msg.c use strbuf_addstr() instead of strbuf_addf() with "%s" 2016-08-05 15:09:25 -07:00
for-each-ref.c ref-filter: add option to match literal pattern 2015-09-17 10:02:49 -07:00
fsck.c Merge branch 'nd/pack-ofs-4gb-limit' into maint 2016-08-08 14:21:36 -07:00
gc.c Merge branch 'ew/gc-auto-pack-limit-fix' into maint 2016-07-28 11:25:56 -07:00
get-tar-commit-id.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
grep.c Merge branch 'nd/ita-cleanup' into maint 2016-07-28 11:25:51 -07:00
hash-object.c Merge branch 'jk/options-cleanup' 2016-02-10 14:20:08 -08:00
help.c help: introduce option --exclude-guides 2016-08-30 16:09:41 -07:00
index-pack.c index-pack: add --max-input-size=<size> option 2016-08-24 12:31:05 -07:00
init-db.c i18n: init-db: join message pieces 2016-06-17 15:46:10 -07:00
interpret-trailers.c Merge branch 'jk/parseopt-string-list' into jk/string-list-static-init 2016-06-13 10:37:48 -07:00
log.c Merge branch 'jk/format-patch-number-singleton-patch-with-cover' 2016-09-08 21:49:47 -07:00
ls-files.c ls-files: add pathspec matching for submodules 2016-10-10 12:14:58 -07:00
ls-remote.c ls-remote: add support for showing symrefs 2016-01-19 10:07:56 -08:00
ls-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
mailinfo.c mailinfo: libify 2015-10-21 15:59:34 -07:00
mailsplit.c mailsplit: support unescaping mboxrd messages 2016-06-06 11:14:43 -07:00
merge-base.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
merge-file.c builtin/merge-file.c: use error_errno() 2016-05-09 12:29:08 -07:00
merge-index.c use sha1_to_hex_r() instead of strcpy 2015-10-05 11:08:05 -07:00
merge-ours.c
merge-recursive.c merge-recursive: convert merge_recursive_generic() to object_id 2016-06-28 11:39:02 -07:00
merge-tree.c struct name_entry: use struct object_id instead of unsigned char sha1[20] 2016-04-25 14:23:42 -07:00
merge.c Merge branch 'rs/merge-add-strategies-simplification' 2016-08-12 09:47:36 -07:00
mktag.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
mktree.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
mv.c git mv: do not keep slash in git mv dir non-existing-dir/ 2016-08-08 10:43:20 -07:00
name-rev.c Merge branch 'js/name-rev-use-oldest-ref' into maint 2016-05-31 14:08:26 -07:00
notes.c i18n: notes: mark comment for translation 2016-07-28 09:09:18 -07:00
pack-objects.c Merge branch 'jk/pack-objects-optim' 2016-08-08 14:48:39 -07:00
pack-redundant.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
pack-refs.c
patch-id.c Merge branch 'rs/patch-id-use-skip-prefix' 2016-06-03 14:38:03 -07:00
prune-packed.c
prune.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
pull.c Merge branch 'va/i18n-even-more' 2016-07-13 11:24:10 -07:00
push.c push: accept push options 2016-07-14 15:50:41 -07:00
read-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
receive-pack.c receive-pack: allow a maximum input size to be specified 2016-08-24 12:31:05 -07:00
reflog.c struct name_entry: use struct object_id instead of unsigned char sha1[20] 2016-04-25 14:23:42 -07:00
remote-ext.c typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
remote-fd.c
remote.c Merge branch 'mh/ref-iterators' 2016-07-25 14:13:33 -07:00
repack.c Merge branch 'va/i18n-even-more' 2016-07-13 11:24:10 -07:00
replace.c Merge branch 'js/replace-edit-use-editor-configuration' into maint 2016-05-06 14:53:24 -07:00
rerere.c Sync with 2.6.1 2015-10-05 13:20:08 -07:00
reset.c Merge branch 'js/find-commit-subject-ignore-leading-blanks' into maint 2016-07-28 11:25:50 -07:00
rev-list.c graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
rev-parse.c use strbuf_addstr() for adding constant strings to a strbuf 2016-08-01 13:42:10 -07:00
revert.c parse_options: allocate a new array when concatenating 2016-07-06 10:11:08 -07:00
rm.c Merge branch 'rs/rm-strbuf-optim' into maint 2016-08-10 11:55:24 -07:00
send-pack.c Merge branch 'sk/send-pack-all-fix' into maint 2016-04-29 14:15:57 -07:00
shortlog.c Merge branch 'js/log-to-diffopt-file' 2016-07-19 13:22:15 -07:00
show-branch.c Merge branch 'rs/show-branch-argv-array' into maint 2015-12-11 11:14:14 -08:00
show-ref.c show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP 2015-11-20 08:02:07 -05:00
stripspace.c stripspace: call U+0020 a "space" instead of a "blank" 2016-01-29 16:02:34 -08:00
submodule--helper.c Merge branch 'sb/submodule-clone-rr' 2016-09-08 21:49:50 -07:00
symbolic-ref.c symbolic-ref -d: do not allow removal of HEAD 2016-09-02 09:01:38 -07:00
tag.c Merge branch 'st/verify-tag' 2016-04-29 12:59:09 -07:00
unpack-file.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
unpack-objects.c unpack-objects: add --max-input-size=<size> option 2016-08-24 12:31:05 -07:00
update-index.c die("bug"): report bugs consistently 2016-07-26 11:13:44 -07:00
update-ref.c
update-server-info.c
upload-archive.c builtin/upload-archive.c: use error_errno() 2016-05-09 12:29:08 -07:00
var.c
verify-commit.c
verify-pack.c
verify-tag.c verify-tag: move tag verification code to tag.c 2016-04-22 14:06:46 -07:00
worktree.c use CHILD_PROCESS_INIT to initialize automatic variables 2016-08-05 15:10:05 -07:00
write-tree.c