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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to