【问题标题】:GitHub: How to do code review on new file with more than 1500 linesGitHub:如何对超过 1500 行的新文件进行代码审查
【发布时间】:2015-12-16 23:54:17
【问题描述】:

在我从事的一个项目中,我们有一个主要功能分支即将合并到主分支中。有很多不应该单独审查的提交,所以我为分支创建了一个 PR 并查看了每个文件的差异 https://github.com/haskell/cabal/pull/2952/files

但是,有一些新文件超过了 GitHub 的 1500 行差异限制。可以点击查看文件,但是之后GitHub的评论界面就没有了。

那么问题来了,我如何在 GitHub 上 CR 一个文件添加,其中文件有超过 1500 行?

【问题讨论】:

  • 嗯,刚刚检查过了。该页面会稍微降低浏览器的速度(FF-41),但仍然可以为特定行添加注释。
  • 评论中最长的文件可能是cabal-install/Distribution/Client/ProjectConfig.hs,它有 1402 行长,不是吗?
  • 搜索“未显示”,会看到BuildTarget和ProjectPlanning这两个文件,超过1500个。
  • 啊哈,现在我明白了。好吧,可能是对 github 的限制,有点人为。要么要求他们删除它,要么让你的 cmets 去文件,例如在对话选项卡中(嗯,不太方便),或者您可以将长文件的添加拆分为两个提交,每个提交都不超过限制,依此类推

标签: git github


【解决方案1】:

我建议您避免针对特定于 GitHub 的解决方案。相反,您可以使用 传统 工具进行代码审查。最可靠的是命令行 git。将远程分支获取到本地计算机,然后:

> git log -p -n 1 COMMIT_ID -- INTERESTING_FILE(s)

例如:

> git log -p -n 1 abcdef -- foo.txt bar.txt
  • -p 获取“补丁”
  • -n 1 单次提交
  • -- 开始文件列表
  • COMMIT_ID 也可以是标签名称、分支名称以及任何其他您喜欢的提交目标

在许多系统上,您可以使用less 分页工具向上/向下滚动;经常开箱即用。

手册页中有更多方便的选项:https://www.kernel.org/pub/software/scm/git/docs/git-log.html


另外,我认为诸如 [gitk] 之类的 GUI 工具也能够处理所有缓冲/滚动。在本地运行时,您将获得最佳性能。虽然可以通过 remote-desktop 和/或 remote-x 获得它,但当它全部通过网络连接传输时,通常会有太多的延迟。

注意:我不经常使用 gitk,所以我不能 100% 确定它处理超大文件的能力。如果在 cmets 中这不是一个选项,请告诉我。

【讨论】:

  • 是的,但是您将无法编写其他贡献者审阅者可以查看和评论的内联 cmets。这将需要通过电子邮件完成,并且会丢失给新来者。
  • 啊,是的。我完全忘记了那个神奇的善良。好吧,他们总是可以围绕咖啡电缆展开讨论,制作一个不错的博客,利用 G+ 或 OneNote 或 Google Docs;最后留下一个 link 到 GitHub 中的评论工件。绝望的时代,绝望的措施,嗯?
  • 或者我可以使用不同的 CR 工具,例如 Phabricator,它实际上可以正确处理这个问题......
  • 这是一个有趣的发现!我想知道 Phabricator 如何与 GitLab(不是 GitHub,它们在名称上看起来非常相似)进行比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2022-12-13
  • 1970-01-01
  • 2022-12-02
  • 2014-07-07
相关资源
最近更新 更多