拉扯请求的git-blame

时间:2013-08-03 02:46:05

标签: git github

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我不相信现在有一个。

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

您还可以在提交中包含拉取请求编号,以关闭每个拉取请求。请参阅Closing issues via commit messages

article介绍了如何使用功能分支跟踪提交历史记录中的提取请求。

最后,为了添加@ onionjake的答案,github也有很好的support for git-notes

答案 2 :(得分:1)

如果您感兴趣的是某个特定行,您可以使用普通的基于提交的指责来获取最后触及该行的提交的SHA,然后使用GitHub的search by SHA能力来查找引入该提交的请求。 (或者,严格地说,包含该提交的所有pull请求,其中可能有很多或没有。)

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

image of blame button

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

image of blame screen

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

issues page

对于文件的每一行(例如此处所需的OP)执行此操作是不切实际的(或者说是乏味的),但希望这种方法至少对那些对PR指责特定行感兴趣的人有所帮助。