用于 hudson 的 git 插件运行良好。但是,构建脚本必须更新存储库中文件中的版本号,提交并推送回存储库。
当 Hudson 轮询 next 以检查更改时,它会进入无限循环,因为它将提交视为“更改”再次构建,它提交更改,因此再次构建,然后提交另一个更改,等等......你得到这个想法。
我停止了它,在每个存储库中运行了一个“git log”,并使用 git ls-tree HEAD 比较了最新的提交 ID 完全相同
此外,Hudson 运行此命令来检查更改:
git fetch +refs/heads/ :refs/remotes/origin/ git ls-tree HEAD
由于 Hudson 本身从其工作区存储库中推送了提交,并且显然 ls-tree 结果匹配,该命令如何确定存在更改?
似乎它必须在构建之前存储 ls-tree 的结果,并与没有最新提交的结果进行比较。啊。我可以尝试关闭提交以测试该理论。
无论如何,与其修复 Hudson 的 git 插件中的任何问题,我可以做些什么来确保在我的构建结束时 repos 是相同的并且 Hudson 会看到它。
如何解决这个问题?有任何想法吗?
韦恩