Re: Fwd: Possibly nicer pathspec syntax?
From: Junio C Hamano <hidden>
Date: 2017-02-08 03:13:08
Linus Torvalds [off-list ref] writes:
No. The thing is, "git diff" is relative too - for path specifications. And the negative entries are pathspecs - and they act as relative ones. IOW, that whole cd drivers git diff A..B -- net/ will actually show the diff for drivers/net - so the pathspec very much acts as relative to the cwd.
But that is not what I was talking about. Let's simplify. I'd say for any command that acts on "everything" when pathspec is not given, the two sets of actual paths affected by these two: git cmd -- "net/" git cmd -- ":!net/" should have no overlap (obviously) and when you take union of the two sets, that should equal to git cmd -- i.e. no pathspecs.
quoted
2. I am not sure what ctype.c change is about. Care to elaborate?I didn't see the need for it either until I made the rest of the patch, and it didn't work at all. The pathspec.c code uses "if (is_pathspec_magic(..))" to test whether a character is a short magiic pathspec character. But '^' wasn't in that set, because it was already marked as being (only) in the regex set. Does that whole is_pathspec_magic() thing make any sense when we have an array that specifies the special characters we react to? No it does not. But it is what the code does, and I just made that code work.
Ah, OK.