我有一个checks the commit messages of pull requests的Travis-CI脚本。 GitHub为它提供了一系列提交,它使用git log --format=online "<lastref>..<firstref>"
来构建要检查的SHA列表。
这在大多数情况下都很有效,但偶尔会发生这种情况:
我的pull request(将分支2.2合并到2.x,多次提交)在Travis上生成此命令:
git log --format=oneline b5d12909dacd80d21c4e4f4ca6d5683d6e547f9e..b349be9418371c1f694dabeccbce0e946fde3a0a
在本地,这可以按预期工作。我得到了PR的提交。但是,在Travis上,b5d129提交没有出现,因此它会转出every commit back to the beginning of the project。
这里发生了什么?
更新:我做了另一个合并PR,这次Travis的默认git clone深度为50,但也不包括2.x上的新提交。无论如何,这个新PR worked correctly的构建。我还是难过。克隆深度不应该有任何影响,因为如果没有必要的提交,结帐会失败。
答案 0 :(得分:0)
克隆深度不应该有效,因为如果没有必要的提交,结帐会失败。
如果问题是克隆深度,您必须意识到您的最新提交不依赖于它之前的所有提交。每次提交都是一个完整的快照&#34;您的存储库,可以独立工作。即使您以1的深度进行克隆,该提交也将具有checkout / build / deploy / etc所需的所有信息,只要该提交是分支的HEAD指向的提交即可。您在GitHub或git show
中看到的小增量只是提交之间的差异,您正在查看它之前的提交(提交父级)。
如果这些Pull请求的提交次数超过50次,那么我认为您所看到的行为有些预期。我不确定Travis是否允许您将克隆深度设置为高于50的任何值(或完全禁用它),但我有一种感觉可以解决您的问题。