Re: nd/attr-match-more-optim, nd/wildmatch and as/check-ignore

2012-10-15 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy   writes:

> These three series all touch the same code in dir.c and cause
> a bunch of conflicts. So I rebase nd/wildmatch and as/check-ignore
> on top of nd/attr-match-more-optim and resolve all conflicts.

Thanks for working on this.  Makes my life much easier.

If not "my life", it certainly will make it easier to shift blame to
others when things go wrong (it is called "easier to bisect" ;-)

--
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


nd/attr-match-more-optim, nd/wildmatch and as/check-ignore

2012-10-14 Thread Nguyễn Thái Ngọc Duy
I promise I won't send anything dir.c-related till the end of this
month :) These three series all touch the same code in dir.c and cause
a bunch of conflicts. So I rebase nd/wildmatch and as/check-ignore
on top of nd/attr-match-more-optim and resolve all conflicts.

nd/attr-match-more-optim


A lot of refactoring in dir.c leads to a cleaner last patch to port
many exclude optimizations to attr. We can extend EXC_FLAGS_ENDSWITH
optimization further, from "^*.[ch]" to "path/to/*.[ch]", but not in
this series.

Nguyễn Thái Ngọc Duy (6):
  exclude: stricten a length check in EXC_FLAG_ENDSWITH case
  exclude: split basename matching code into a separate function
  exclude: fix a bug in prefix compare optimization
  exclude: split pathname matching code into a separate function
  gitignore: make pattern parsing code a separate function
  attr: more matching optimizations from .gitignore

 Documentation/gitattributes.txt|   1 +
 attr.c |  52 ++
 dir.c  | 192 -
 dir.h  |  13 ++-
 t/t0003-attributes.sh  |  10 ++
 t/t3001-ls-files-others-exclude.sh |   6 ++
 6 files changed, 186 insertions(+), 88 deletions(-)

nd/wildmatch


new ctype patches that no longer introduce sane_ctype2[]. I also
re-indent wildmatch.c to follow Git's coding style with the intention
of making more changes in future (e.g. case insensitive support in
pathspec means we cannot rely on GNU extension FNM_CASEFOLD). Thanks
to nd/attr-match-more-optim we don't need to make any changes to
attr.c.

Depends on nd/attr-match-more-optim.

Nguyễn Thái Ngọc Duy (13):
  ctype: make sane_ctype[] const array
  ctype: support iscntrl, ispunct, isxdigit and isprint
  Import wildmatch from rsync
  wildmatch: remove unnecessary functions
  wildmatch: follow Git's coding convention
  Integrate wildmatch to git
  t3070: disable unreliable fnmatch tests
  wildmatch: make wildmatch's return value compatible with fnmatch
  wildmatch: remove static variable force_lower_case
  wildmatch: fix case-insensitive matching
  wildmatch: adjust "**" behavior
  wildmatch: make /**/ match zero or more directories
  Support "**" wildcard in .gitignore and .gitattributes

 .gitignore |   1 +
 Documentation/gitignore.txt|  19 +++
 Makefile   |   3 +
 ctype.c|  15 ++-
 dir.c  |   4 +-
 git-compat-util.h  |  15 ++-
 t/t0003-attributes.sh  |  37 ++
 t/t3001-ls-files-others-exclude.sh |  18 +++
 t/t3070-wildmatch.sh   | 195 +++
 test-wildmatch.c   |  14 +++
 wildmatch.c| 234 +
 wildmatch.h|   9 ++
 12 files changed, 556 insertions(+), 8 deletions(-)
 create mode 100755 t/t3070-wildmatch.sh
 create mode 100644 test-wildmatch.c
 create mode 100644 wildmatch.c
 create mode 100644 wildmatch.h

as/check-ignore
---

Conflict resolution and cleanups. A lot of matching code sharing
between exclude and attr means we might be able to bring check-ignore
functionality to check-attr. But let's leave it for now.

Depends on nd/attr-match-more-optim.

Adam Spiers (12):
  dir.c: rename cryptic 'which' variable to more consistent name
  dir.c: rename path_excluded() to is_path_excluded()
  dir.c: rename excluded_from_list() to is_excluded_from_list()
  dir.c: rename excluded() to is_excluded()
  dir.c: refactor is_excluded_from_list()
  dir.c: refactor is_excluded()
  dir.c: refactor is_path_excluded()
  dir.c: keep track of where patterns came from
  dir.c: refactor treat_gitlinks()
  pathspec.c: move reusable code from builtin/add.c
  dir.c: provide free_directory() for reclaiming dir_struct memory
  Add git-check-ignore sub-command

 .gitignore|   1 +
 Documentation/git-check-ignore.txt|  85 
 Documentation/gitignore.txt   |   6 +-
 Documentation/technical/api-directory-listing.txt |   2 +
 Makefile  |   3 +
 attr.c|   2 +-
 builtin.h |   1 +
 builtin/add.c |  84 +---
 builtin/check-ignore.c| 170 +++
 builtin/clean.c   |   2 +-
 builtin/ls-files.c|   5 +-
 command-list.txt  |   1 +
 contrib/completion/git-completion.bash|   1 +
 dir.c | 185 +--
 dir.h |  21 +-
 git.c |   1 +
 pathspec.c|