对于每个http请求,在服务器端运行单独的进程git-http-backend
。
当多个客户端推送到同一个远程存储库时,它如何处理并发问题?
例如,它是否创建锁定文件以及名称是什么?
注意:远程存储库是裸的。
答案 0 :(得分:2)
与通过SSH调用的方式相同 - 请参阅update_ref function in refs.c。锁定机制的实际实现存在于lock_file function in lockfile.c中,是的,它在那里创建了一个.lock
文件。在幕后,它通过O_EXCL
的{{1}}选项完成。