Re: Race condition in git push --mirror can cause silent ref rewinding
- From
Alex Vandiver <alex@chmrr.net>
- Date
- Jul 2, 2014, 23:10 UTC
- Message-ID
- <53B49173.4020001@chmrr.net>
- In-Reply-To
- <xmqqfvijflnr.fsf@gitster.dls.corp.google.com>
On 07/02/2014 06:20 PM, Junio C Hamano wrote:
Show 11 quoted lines
> Alex Vandiver <alex@chmrr.net> 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