我有10个进程在同一台机器上运行,任何时候都可以在同一个git repo上运行git clone
和git fetch
。
显然这是一个问题,因为git clone
会引发“directory already exist
而git fetch会在后续请求中引发expected ref to be abcdfg but was hijklm
行。通常这些请求会在确切的情况下发生同时,因此检查文件夹是否存在将无法正常工作,因为git可以在创建它的过程中。
我的问题是:有没有办法可以检查Git目前是克隆还是当前正在抓取某些内容?然后我可以编写我的程序来等待现有的提取完成,直到继续。
我正在运行Ubuntu 12 LTS,如果这有帮助,我的进程是用Ruby编写的,尽管这并不重要。
让我知道你的想法。
答案 0 :(得分:0)
对于现有的存储库(在fetch
期间),当Git运行时,它会将文件写入.git/index.lock
。在运行新命令之前,您的进程应该等待清除该文件。