7

对于拉取请求,我想要“git blame”之类的东西。为了审核文件的更改,我需要使用对合并每个更改(假设有一个)的拉取请求(而不是提交)的引用来注释文件。有没有工具可以做到这一点?

4

3 回答 3

3

如果有你感兴趣的特定行,你可以使用普通的基于提交的责备来获取最后触及该行的提交的 SHA,然后使用 GitHub 的SHA 搜索功能来查找引入该提交的拉取请求. (或者,严格来说,所有包含该提交的拉取请求,其中可能有很多或没有。)

因此,举一个任意的例子,如果我想公关责备https://github.com/kennethreitz/requests/blob/master/setup.py的第 4 行,首先我点击责备按钮:

责备按钮的图像

然后我记下我感兴趣的行的提交的 SHA,并将其输入到页面顶部的存储库搜索栏中:

责备屏幕的图像

然后我搜索,选择“Issues”,出现相关的PR:

问题页面

对文件的每一行都执行此操作是不切实际的(或充其量是乏味的),就像这里想要的 OP 一样,但希望这种方法至少对那些对 PR 归咎于特定行感兴趣的人有所帮助。

于 2016-06-04T00:37:47.687 回答
2

git-notes可能是您需要的。

首先,您将使用其拉取请求(例如)为每个提交添加一个注释git notes add -m 'Pull-Request: 5' <sha1>

然后,您可以使用 git-blame 为文件中的每一行查找那些拉取请求注释。这里可能是一个例子:

$ git blame --line-porcelain <some file> | grep -P '^(\w|\d){40}' | 
     ruby -ne 'print $_.strip + " " ; puts `git notes show #{$_.split[0]}`'
67a262e6951b17ba0bc7adfcf1c7e5e1596efafd 1 1 1 Pull-Request: 2
0fd6a5000552f0d916079a7a965087acf2d3ad26 2 2 1 Pull-Request: 3
于 2013-08-03T04:09:25.467 回答
1

我不相信目前有一个。

但是,您可能希望考虑在提交消息中使用元数据,例如引用问题、功能、故事等。Pivotal Tracker 对这些有很好的支持

您还可以在关闭每个拉取请求的提交中包含拉取请求编号。请参阅通过提交消息关闭问题

本文介绍了如何使用功能分支来跟踪提交历史中的拉取请求。

最后,要添加到@onionjake 的答案,github 也对 git-notes 有很好的支持

于 2013-08-03T02:57:06.440 回答