Ste*_*lay 6 git git-log pull-request travis-ci
我有一个Travis-CI脚本,用于检查拉取请求的提交消息.GitHub为它提供了一系列提交,它用于git log --format=online "<lastref>..<firstref>"构建要检查的SHA列表.
这在大多数情况下都很有用,但偶尔会发生这种情况:
我的拉取请求(将分支2.2合并到2.x,多次提交)在Travis上生成此命令:
git log --format=oneline b5d12909dacd80d21c4e4f4ca6d5683d6e547f9e..b349be9418371c1f694dabeccbce0e946fde3a0a
Run Code Online (Sandbox Code Playgroud)
在本地,这可以按预期工作.我得到了PR的提交.但是,在Travis上,b5d129提交没有出现,因此它会将每次提交转储回项目的开头.
这里发生了什么?
更新:我做了另一个合并PR,这次是Travis的默认git clone深度为50,但也不包括2.x上的新提交.无论如何,这个新PR的构建工作正常.我还是难过.克隆深度不应该有任何影响,因为如果没有必要的提交,结账会失败.
克隆深度不应该产生任何影响,因为如果没有必要的提交,签出将会失败。
如果问题是克隆深度,您必须意识到最新的提交并不依赖于之前的所有提交。每次提交都是存储库的完整“快照”,并且可以独立工作。即使您以 1 的深度进行克隆,该提交也将具有签出/构建/部署等所需的所有信息,只要该提交是分支的 HEAD 指向的信息即可。您在 GitHub 中看到的小增量,或者git show只是您正在查看的提交与之前的提交(提交父级)之间的差异。
如果这些拉取请求有超过 50 次提交,那么我认为您所看到的行为在某种程度上是预期的。我不确定 Travis 是否允许您将克隆深度设置为高于 50(或完全禁用它),但我有一种感觉可以解决您的问题。