相反,我想在构建机器上有一个共享的本地仓库,它是我们远程仓库的克隆。每个作业将在特定分支上执行 "git pull" 以从远程仓库中获取任何更改,然后在开始构建之前将源树从仓库复制到其 Jenkins 工作区。
这是个坏主意吗?
我担心的是针对同一代码分支的不同作业将同时运行,这可能会导致并发的 "git pull" 请求。
这会导致 Git 的元数据损坏吗?
由于锁定问题,是否有一个并发的拉取可能会失败?
共享的本地仓库不会有任何更改提交到它,也不会有任何东西从它推送到远程仓库。可以说它是一个“只拉取”的仓库。所有的拉取都来自同一用户,因此不应该出现文件权限问题。一些谷歌搜索找到了这个四年前的讨论,但似乎没有得出结论:
http://git.661346.n2.nabble.com/concurrent-fetches-to-update-same-mirror-td5893458.html