Changes from v2 (it's hard to keep track of after the rebase, so I may be missing something here): - rebased on top of recent master, incorporate changes in init_pathspec from jk/pathspec-literal and nd/pathspec-wildcard to parse_pathspec - kill strip_trailing_slash_from_submodules and treat_gitlinks (pretty sure it'll cause conflicts with as/check-ignore) - kill init_pathspec, match_pathspec, diff_tree_setup_paths and diff_tree_release_paths - check points for future pathspec development As far as I understand the "pathspec unification", I'd say we are there, with a few exceptions like "mv", external commands.. But those are pretty much isolated. I'll send another WIP series implementing :(icase) and :(glob), mainly to show (me) how future pathspec feature development looks like after this. Nguyễn Thái Ngọc Duy (31): clean: remove unused variable "seen" Add copy_pathspec Add parse_pathspec() that converts cmdline args to struct pathspec parse_pathspec: save original pathspec for reporting Export parse_pathspec() and convert some get_pathspec() calls Guard against new pathspec magic in pathspec matching code clean: convert to use parse_pathspec parse_pathspec: add PATHSPEC_EMPTY_MATCH_ALL commit: convert to use parse_pathspec status: convert to use parse_pathspec rerere: convert to use parse_pathspec checkout: convert to use parse_pathspec rm: convert to use parse_pathspec parse_pathspec: support stripping submodule trailing slashes ls-files: convert to use parse_pathspec archive: convert to use parse_pathspec parse_pathspec: support stripping/checking submodule paths add: convert to use parse_pathspec Convert read_cache_preload() to take struct pathspec Convert unmerge_cache to take struct pathspec checkout: convert read_tree_some to take struct pathspec Convert report_path_error to take struct pathspec Convert refresh_index to take struct pathspec Convert {read,fill}_directory to take struct pathspec Convert add_files_to_cache to take struct pathspec Convert common_prefix() to use struct pathspec Remove diff_tree_{setup,release}_paths Remove init_pathspec() in favor of parse_pathspec() Remove match_pathspec() in favor of match_pathspec_depth() tree-diff: remove the use of pathspec's raw[] in follow-rename codepath Rename field "raw" to "_raw" in struct pathspec archive.c | 18 +++-- archive.h | 2 +- builtin/add.c | 155 +++++++++++++++---------------------- builtin/blame.c | 12 +-- builtin/checkout.c | 44 ++++++----- builtin/clean.c | 21 ++--- builtin/commit.c | 37 +++++---- builtin/diff-files.c | 2 +- builtin/diff-index.c | 2 +- builtin/diff.c | 6 +- builtin/grep.c | 6 +- builtin/log.c | 2 +- builtin/ls-files.c | 72 +++++++----------- builtin/ls-tree.c | 10 ++- builtin/mv.c | 13 ++-- builtin/rerere.c | 6 +- builtin/reset.c | 4 +- builtin/rm.c | 23 +++--- builtin/update-index.c | 3 +- cache.h | 36 +++++++-- diff-lib.c | 2 +- diff.h | 2 - dir.c | 202 ++++++++----------------------------------------- dir.h | 9 ++- merge-recursive.c | 2 +- notes-merge.c | 4 +- preload-index.c | 20 ++--- read-cache.c | 5 +- rerere.c | 6 +- rerere.h | 4 +- resolve-undo.c | 4 +- resolve-undo.h | 2 +- revision.c | 11 +-- setup.c | 149 ++++++++++++++++++++++++++++++------ tree-diff.c | 47 +++++++----- tree-walk.c | 2 + tree.c | 4 +- tree.h | 2 +- wt-status.c | 17 ++--- wt-status.h | 2 +- 40 files changed, 460 insertions(+), 510 deletions(-) -- 1.8.0.rc2.23.g1fb49df -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html