From: Jacob Keller <jacob.keller@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx/ 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