Re: push race
- From
- Angelo Borsotti <angelo.borsotti@gmail.com>
- Date
- Oct 15, 2012, 11:50 UTC
- Message-ID
- <CAB9Jk9ABh45TQTu_KKxNGrVzSaT2_ed87M1jO-074ptP4F=w9A@mail.gmail.com>
- In-Reply-To
- <CAPc5daUon3eLTDT=3wo_=rTCJWVe=ufCvmSzrjD=0T17Dxkpqw@mail.gmail.com>
Hi Junio,
is receive-pack invoked only when using the git or ssh protocols, or is it invoked also when accessing directly a remote repository as a mounted filesystem? But let's see if there are problems also with the other protocols: in transport.c, the function git_transport_push calls first get_remote_heads() to get the tips of the branches and then calls send_pack(). I did not study deeply the code, but I have the impression that there is nothing that prevents an interleaved execution of them by two workstations. I had a look to receive-pack, and have seen that it creates lock files for the branches it updates. However the lock seems to protect only the updating of files, not the checking of the tips.
-Angelo