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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html