This is another step towards the pathspec unification. This series introduces a get_pathspec() alternative: parse_pathspec(). The new function intializes struct pathspec directly. Many builtin commands (except mv) are converted to use this function. As a result, struct pathspec is used from the start for many commands. The next step would be dealing with pathspec manipulation code blocks that use "raw" field, init_pathspec or get_pathspec(). add.c, dir.c, rm.c and mv.c are hot places. And perhaps move pathspec code from dir.c and setup.c to pathspec.c after as/check-ignore enters "master". This series shares a patch (the first one) with nd/pathspec-wildcard. I put the patch in the series to avoid dependency. This series also disables wildcards in the prefix part, but it's only effective in combination with nd/pathspec-wildcard. And of course it's not fully effective until all "raw" use is eliminated. Nguyễn Thái Ngọc Duy (21): pathspec: save the non-wildcard length part Add parse_pathspec() that converts cmdline args to struct pathspec pathspec: make sure the prefix part is wildcard-clean Export parse_pathspec() and convert some get_pathspec() calls clean: convert to use parse_pathspec 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 ls-files: convert to use parse_pathspec archive: convert to use parse_pathspec 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 more init_pathspec() to parse_pathspec() archive.c | 12 +++--- archive.h | 2 +- builtin/add.c | 75 ++++++++++++++++++------------------ builtin/checkout.c | 37 ++++++++---------- builtin/clean.c | 20 +++++----- builtin/commit.c | 35 +++++++++-------- builtin/diff-files.c | 2 +- builtin/diff-index.c | 2 +- builtin/diff.c | 4 +- builtin/grep.c | 6 +-- builtin/log.c | 2 +- builtin/ls-files.c | 64 +++++++++++-------------------- builtin/ls-tree.c | 4 +- builtin/rerere.c | 6 +-- builtin/rm.c | 16 ++++---- builtin/update-index.c | 3 +- cache.h | 19 +++++++--- diff-lib.c | 2 +- dir.c | 38 ++++++++++++++----- dir.h | 5 ++- merge-recursive.c | 2 +- preload-index.c | 20 +++++----- read-cache.c | 5 ++- rerere.c | 6 +-- rerere.h | 4 +- resolve-undo.c | 4 +- resolve-undo.h | 2 +- revision.c | 4 +- setup.c | 101 +++++++++++++++++++++++++++++++++++++------------ tree-walk.c | 4 +- tree.c | 4 +- tree.h | 2 +- wt-status.c | 17 ++++----- wt-status.h | 2 +- 34 files changed, 291 insertions(+), 240 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