检查svn分支中的更改

时间:2011-02-17 13:03:20

标签: svn emacs

我们通常在单独的svn分支上开发新功能。 完成功能后,另一个人会审查该分支的“更改。”

我使用带有psvn的emacs。 svn-status非常方便。 它标记了本地(未提交)更改之间的更改。 ediff很容易看到与 svn-status 模式缓冲区的所有差异。

通常我会采取这些措施来简化对其他同事工作的审核:

svn co [svn-branch-url]         # get his branch locally  
cd [check-out-branch]  
svn log -vvv -stop-on-copy      # this gives me all revision involved  
svn diff -r[old]:[latest] >diff.patch # note latest is not HEAD  
svn switch [svn-url]@[old]      # go to the creating of the branch  
patch -p0 diff.patch                 # apply his feature  

现在,emacs允许我使用svn-status查看所有更改。 我在源代码中添加了一些评论评论并执行以下步骤:

svn switch [svn-url]@[latest]  

我现在遇到了冲突。 (再次使用emacs轻松查看这些ediff)。 但这只是我的评论意见。

svn resolved [files-in-conflict]  
svn commit -m "review comments"

现在我的同事可以阅读评论。

有没有更实际的方法呢? 你好吗?

2 个答案:

答案 0 :(得分:0)

安装Redmine(使用代码审查插件)或Reviewboard,它会显示所有提交消息的大清单,您可以查看分支在任何2个修订版本之间的更改。您还可以注释您找到的任何问题,并自动创建它们作为开发人员修复的门票!

答案 1 :(得分:0)

我看到你的方法存在一些局限性:
*您需要通过电子邮件在人们之间传递补丁文件;
*您不会留下任何评论和讨论的痕迹;
*你有一个很长的审查程序,这意味着人们会尽可能地避免它。

我已经能够使用两种没有这种限制的方法:
*使用malevich或ReviewBoard创建包含差异的网站,并允许审阅者在那里发表评论。
*编写一个小脚本(比如使用pysvn的python代码)来自动化这个过程,这样开发人员只需要编写“cr branch-name developer-name”并在emacs中打开更改。