From: Jacob Keller <jacob.keller@gmail.com>
This is more or less just a port of what Peff already had published a few years ago at https://lore.kernel.org/git/20140125013433.GA22336@sigill.intra.peff.net/
I cleaned some things up and made sure the tests pass, but haven't yet added any new tests.
I think the overal design makes sense: applying positive first and then negative. This appears to be how negative pathspecs work at least as far as I could tell with a few trials.
The first two patches are cleanup/fixups that I think could go separately if everyone agrees. The third is the meat of the idea, and where most of the work needs to be done.
Jacob Keller (3): refspec: fix documentation referring to refspec_item refspec: make sure stack refspec_item variables are zeroed refspec: add support for negative refspecs
builtin/fetch.c | 3 +++ builtin/remote.c | 1 + refspec.c | 30 +++++++++++++++++++++++++++++ refspec.h | 29 +++++++++++++++------------- remote.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++- remote.h | 9 ++++++++- transport.c | 1 + 7 files changed, 107 insertions(+), 15 deletions(-)
base-commit: 878e727637ec5815ccb3301eb994a54df95b21b8
-- 2.28.0.163.g6104cc2f0b60