当开发人员没有公共工作存储库时,如何使用git发送代码审查请求?

时间:2011-06-07 20:20:39

标签: git

通常在Git中,每个开发人员都会从原点克隆到个人跟踪仓库,进行一些更改,然后向引用其个人机器的管理器发送获取请求,该个人机器具有git-daemon或web服务器,或者允许经理用ssh连接到它。

对于一些变化,它可以让开发人员自己检查一下。对于较大的人,其他人喜欢在检查主人之前查看它。因此开发人员有权检查存储库。

但是,如果经理无法连接到其他开发人员工作机器,并且只能访问原始git仓库或电子邮件,该怎么办?发送差异给他审查的最佳方法是什么?

我们可以在电子邮件中发送补丁,或者开发人员可以将他的分支推送到原点并告诉经理git fetch origin; git diff master..case223。还是有另一种更好的方法吗?

5 个答案:

答案 0 :(得分:6)

我会用

git format-patch <branch-to-compare-against> --cover-letter -o patches/

这将基本上为您的提交创建适当的补丁 然后

git send-email --to <receiver@example.com> --annotate patches/*

查看手册页:

答案 1 :(得分:3)

Git捆绑

git bundle create myproposal.git origin/sharedbranch..HEAD

您可以像回购一样收到它:

cd myworktree
git pull /tmp/myproposal.git

顺便提一下,git bundle也是备份整个仓库的最有效方式,例如

git bundle create /tmp/backup.git --all --tags --remotes

答案 2 :(得分:2)

允许开发者推送到同一个仓库的某些分支。使用gitolite来管理谁拥有对哪个分支的访问权限。无需来回发送电子邮件。

更新:从那时起,我写了这篇文章:http://dymitruk.com/blog/2012/02/05/branch-per-feature/

希望这有帮助。

答案 3 :(得分:1)

无耻的广告:我建议你也考虑Gerrit

我们将它用于代码审查,这是一个了不起的工具(特别是访问权限的可能性)。有了这个,这里的每个开发人员都可以将他的更改推送到审核分支(并且只在那里),其他开发人员可以查看更改(它们也由Jenkins自动构建和测试,并在测试成功时得到验证)。

在您的情况下,您有权让经理向存储库提交更改,我们也为开发人员启用了更改,并且仅限制了工作流限制,两位开发人员必须审核更改以提交更改。

答案 4 :(得分:0)

注意:除了git send-email之外,您还可以使用git contacts contrib script列出您的电子邮件感兴趣的潜在联系人。

使用Git 2.14.x / 2.15,该脚本还会检测“Reported-by”部分。

commit 09ac673Eric Blake (BlakeEric)(2017年7月21日) (由Junio C Hamano -- gitster --合并于commit 6d2b8a3,2017年8月11日)

  

git contacts”(在contrib/中)现在将“Reported-by:”预告片中的地址列在其输出中,以及Sob:和其他预告片上的地址,以便更轻松通知(并感谢)原始的bug记者。

     

git-contacts:也识别“Reported-by:

     

对于报告错误的人来说,这很好,以便让他们知道正在考虑修复,甚至可能会帮助他们检查/测试修补程序。

当然......

  • S-o-b:表示Signed-off-by:
  • 预告片,formalized in 2014是提交的另一部分(Signed-off-by|Reviewed-by|Acked-by|Cc