Hello, 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 checking and the uploading are two distinct operations that should be indivisible. Suppose that two workstations are pushing at the same time, and that the push of the first has just checked the tips and found that they are ok, and --before-- the push command uploads the snapshot, the second workstation checks the tips too. The test would be successful, and both workstation would upload their files, actually overwriting each others'. I have browsed push.c, transport.c, connect.c, send-pack.c, but have not found any synchronization that protects the checking and the uploading with some critical sections. Has some sort of mutual exclusion been implemented, or it is up to the user to guarantee that two pushes are not done simultaneously? -Angelo Borsotti -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html