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>
This commit is contained in:
Linus Torvalds 2017-02-07 21:05:28 -08:00 committed by Junio C Hamano
parent 6e3a7b3398
commit 42ebeb9d07
2 changed files with 8 additions and 2 deletions

View File

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

View File

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