Subject: Re: Race condition in git push --mirror can cause silent ref rewinding

From: Junio C Hamano <[email-masked]>
Date: Wed, 02 Jul 2014 15:20:08 -0700

Alex Vandiver <[email-masked]> writes:

>     [remote "github"]
>         url = [email-masked]: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.

Perhaps removing remote.github.fetch would be one sane way forward.
Otherwise, even if your "git push" does not pretend to immediately
fetch from there (i.e. even if the reported behaviour was a bug,
without doing anything to trigger it) somebody running "git fetch"
in this repository can destroy what other person pushes into this
repository at the same time exactly the same way, I would think.