On Tue, Jan 17, 2017 at 07:04:28AM +0100, Reimar Döffinger wrote: > Deletes refs/heads/test every second time when run repeatedly: > > $ git fetch -p -v origin master:refs/heads/test > From https://github.com/git/git > * [new branch] master -> test > = [up to date] master -> origin/master > $ git fetch -p -v origin master:refs/heads/test > From https://github.com/git/git > - [deleted] (none) -> test > = [up to date] master -> test > = [up to date] master -> origin/master Hmm. It seems like the problem is that "-p" is saying "the other side does not have refs/heads/test; we must prune it". But I think it is probably nonsense to apply pruning to a non-wildcard refspec. > Also note that this behaviour appears also when fetch.prune=yes > is set in the config (instead of -p on the command-line), > which makes it much less obvious and there is no option to turn > of prune just for that command to work-around this. There is a separate issue of whether it is sane to apply fetch.prune to a refspec given on the command line; I can imagine it as surprising, to say the least. I think "--no-prune" would disable it, though. -Peff