我的“更新”挂钩有问题。在新分支的情况下,它会获得 00000000000000000000000000000000000000000 作为“oldrev”。我不知道如何处理这种情况。
我们有这样的要求,即每条提交消息都引用一个有效的 Jira 问题。所以我在我们的中央存储库上安装了一个“更新”钩子。该钩子有一个“oldrev”和一个“newrev”。然后我将它们传递给“git rev-list”,如下所示:
git rev-list $oldrev..$newrev
这给了我所有转速的列表,然后我可以遍历它,并做我需要做的任何事情。
问题是,当用户推送一个新分支时,钩子将 0000000000000000000000000000000000000000 作为 oldrev。而“git rev-list”只是抱怨:
fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2
那么如何获取该新分支上所有转速的列表呢?我已经在网上搜索了很长时间,但一无所获。我发现的示例挂钩
- 不处理问题,并因上述错误消息而失败
- 错误地尝试通过将 oldrev 设置为 "" 来解决问题,这会从 rev-list 返回错误的结果
- 当他们遇到那个oldrev时就放弃
这些听起来都不是特别令人兴奋。
那么有人知道在这种情况下如何得到正确的答案吗?我正在考虑向 git 查询“给我所有可以从 newrev 访问的转速,但不能从任何其他分支(=除新分支之外的所有分支)”。但是,如果从新分支合并到任何旧分支,即使这样也会给出错误的答案。