diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-08 08:05:28 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-02-11 00:19:10 +0300 |
commit | 42ebeb9d07de3c6d3a263f8ebce0508e489e5cc9 (patch) | |
tree | 234f4e3d7bfc1e7464da0447fd2ba95b41aef93f | |
parent | 6e3a7b3398559305c7a239a42e447c21a8f39ff8 (diff) |
pathspec magic: add '^' as alias for '!'
The choice of '!' for a negative pathspec ends up not only not matching
what we do for revisions, it's also a horrible character for shell
expansion since it needs quoting.
So add '^' as an alternative alias for an excluding pathspec entry.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Documentation/glossary-content.txt | 4 | ||||
-rw-r--r-- | pathspec.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index 8ad29e61a9..822ca83264 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -386,8 +386,8 @@ Glob magic is incompatible with literal magic. exclude;; After a path matches any non-exclude pathspec, it will be run - through all exclude pathspec (magic signature: `!`). If it - matches, the path is ignored. + through all exclude pathspec (magic signature: `!` or its + synonym `^`). If it matches, the path is ignored. -- [[def_parent]]parent:: diff --git a/pathspec.c b/pathspec.c index 7ababb3159..ecad034063 100644 --- a/pathspec.c +++ b/pathspec.c @@ -224,6 +224,12 @@ static const char *parse_short_magic(unsigned *magic, const char *elem) char ch = *pos; int i; + /* Special case alias for '!' */ + if (ch == '^') { + *magic |= PATHSPEC_EXCLUDE; + continue; + } + if (!is_pathspec_magic(ch)) break; |