当多个客户端推送到同一个远程存储库时,git如何处理并发问题?

时间:2013-03-28 05:24:40

标签: git concurrency

对于每个http请求,在服务器端运行单独的进程git-http-backend

当多个客户端推送到同一个远程存储库时,它如何处理并发问题?

例如,它是否创建锁定文件以及名称是什么?

注意:远程存储库是裸的。

1 个答案:

答案 0 :(得分:2)

与通过SSH调用的方式相同 - 请参阅update_ref function in refs.c。锁定机制的实际实现存在于lock_file function in lockfile.c中,是的,它在那里创建了一个.lock文件。在幕后,它通过O_EXCL的{​​{1}}选项完成。