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