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