拉取请求的 Git-blame

8

我希望有像 "git blame" 一样的工具可以用于 pull requests。为了审查一个文件的更改,我需要用 pull request 的引用来注释每个更改(假设有这样的一次更改)。是否有这样的工具可以实现这个功能?


我使用带有fugitive插件的Vim,并经常使用Gblame(按行号显示每个行的Git作者)和Gbrowse(在当前高亮行的github提交中在浏览器中打开)。将这些功能结合到Vim上下文中的Pull Request中将是最好的事情。 - Jacob Dalton
3个回答

4
如果你对特定的行感兴趣,你可以使用普通的基于提交的 blame 命令来获取最后修改该行的提交 SHA,并利用 GitHub 的能力 通过 SHA 进行搜索 找到引入该提交的拉取请求。 (严格地说,是包含该提交的所有拉取请求,其中可能有许多或没有。)
因此,以任意例子为例,如果我想要 PR-blame https://github.com/kennethreitz/requests/blob/master/setup.py 的第 4 行,请先单击 blame 按钮:

image of blame button

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

image of blame screen

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

issues page

这样做对于文件中的每一行都进行此操作是不切实际的(或者最好说是很烦人的),就像这里的原帖所希望的那样。但希望这种方法至少对于有兴趣对特定行进行PR归咎的人有所帮助。

正是我所需!现在我只需要自动化这个 :) - LeZuse

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

我不认为目前有这样的工具。

但是,您可以考虑在提交消息中使用元数据,例如引用问题、特性、故事等。Pivotal Tracker对此方面有良好的支持

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

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

最后,为了补充@onionjake的答案,Github也有很好的git-notes支持


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接