From: Alex Vandiver Date: Wed, 02 Jul 2014 23:10:43 GMT Subject: Re: Race condition in git push --mirror can cause silent ref rewinding Message-ID: <53B49173.4020001@chmrr.net> In-Reply-To: On 07/02/2014 06:20 PM, Junio C Hamano wrote: > Alex Vandiver writes: > >> [remote "github"] >> url = git@github.com:bestpractical/rt.git >> fetch = +refs/*:refs/* >> mirror = yes > > "git push github master^:master" must stay a usable way to update > the published repository to an arbitrary commit, so "if set to > mirror, do not pretend that a fetch in reverse has happened during > 'git push'" will not be a solution to this issue. Hm? I'm confused, as mirror isn't compatible with refspecs: $ git push github master^:master error: --mirror can't be combined with refspecs > Perhaps removing remote.github.fetch would be one sane way forward. Ahh -- I see. The repository predates a9f5a355, which split `git remote add --mirror` into `--mirror=push` and `--mirror=fetch`, because of more or less this exact problem. Of course, there is nothing much that can be done for existing repositories in this situation as it's a legitimate combination. - Alex