Re: push race
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Oct 15, 2012, 11:53 UTC
- Message-ID
- <CACsJy8Aw1iM9BTqv4jmoEK+a1gzKUL0rfVGFsnebofd67LxZew@mail.gmail.com>
- In-Reply-To
- <vpqd30k806o.fsf@grenoble-inp.fr>
On Mon, Oct 15, 2012 at 6:05 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
Show 13 quoted lines
> Angelo Borsotti <angelo.borsotti@gmail.com> writes: > >> the push command checks first if the tips of the branches match those >> of the remote references, and if it does uploads the snapshot. > > The update does two things: upload objects to the database, and then > update the reference. Adding objects to the database does not change the > repository until the objects are reachable from a ref. Updating the ref > is usually done giving the expected old sha1, and locks the ref, so it > can't change in the meantime. > > I don't know this part of the code very well, but check refs.c for the C > part, and "git update-ref" for the plumbing interface.
I think it's lock_any_ref_for_update(), which is called inside refs.c:update_ref().
-- Duy