对于拉动请求,我喜欢“git blame”之类的东西。为了审核文件的更改,我需要注释一个文件,其中引用了 pull request (而不是提交),它们合并了每个更改(假设有一个)。有没有工具可以做到这一点?
答案 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行,首先我点击责备按钮:
然后我注意到我感兴趣的行的提交的SHA,并将其输入到页面顶部的存储库搜索栏中:
然后我搜索,选择“问题”,相关的PR出现:
对于文件的每一行(例如此处所需的OP)执行此操作是不切实际的(或者说是乏味的),但希望这种方法至少对那些对PR指责特定行感兴趣的人有所帮助。