IDEA 的Terminal控制台中使用svn的命令及生成diff文件的方法

本文详细介绍了如何在IntelliJ IDEA中利用SVN进行代码审查,包括比较本地与远程版本差异、生成和应用补丁文件,以及使用TortoiseSVN和Phabricator进行版本管理和代码审查流程。

        项目公司老的项目还是使用的svn进行软件版本控制,开发完功能上线前有代码审查的环节,也就是codeReview,

为了实现以下的几点目的:

1.每次提交代码前,查看本地修改的代码 working copy和之前最后一次更新后的svn版本,修改的代码的内容

2.提交完代码后,查看本次修改的代码,与svn版本库中任意版本的代码,修改代码的内容

3.查看svn代码库中,任意的版本之间代码的差异内容

IDEA中集成了Terminal命令行工具,可以直接使用svn命令查看代码修改的差异:

点击 View --> Tool Windows  --> Terminal,或者按Alt+F12,即可打开IDEA的命令行窗口:

39bb27a5881f84de60b5475b140a350e339.jpg

1.svn diff的用法
1.1 对比当前本地的工作拷贝文件(working copy)和缓存在.svn下的版本库文件的区别

svn diff
1.2 对比当前本地的工作拷贝文件(working copy)和任意版本A的差异
svn diff -rA
比如,以下将对比本地的工作拷贝文件(working copy)和版本94239的差异
svn diff -r94239 
1.3 对比任意历史版本A和任意历史版本B的差异
svn diff -rA:B
比如,以下命令将显示版本94127相对于版本94239的差异,
[@user]$ svn diff -r94239:94127
显示差异后的结果如下,
===================================================================
--- RealServer/LogicWorker.cpp     (revision 94239)
+++ RealServer/LogicWorker.cpp     (revision 94127)
@@ -964,22 +964,8 @@
.......
其中r后面的参数的含义是版本号,具体可以在svn log中查询到。

2 svn log的用法
1.1在任意位置使用
svn log ur1
1.2 进入代码在本地的目录后使用
svn log

3 svn merge的用法
svn merge -rA:B
比如,下面这个命令的含义是,把94127版本相对于94239版本的差异merge到当前版本,注意冒号前后的版本的顺序是会带来区别的。
svn merge -r94239:94127
merge完成之后,记得提交本地的修改到版本库,
svn ci -m"restore to version 94127"

2.svn生成patch和打(导入)patch文件的方法

生成patch文件:
svn diff > patchFile // 整个工程的变动生成patch,patchFile为本地文件路径
或svn diff file > patchFile // 某个文件单独变动的patch,patchFile为本地文件路径
 
svn回滚:
svn revert FILE // 单个文件回滚
svn revert DIR --depth=infinity // 整个目录进行递归回滚
 
打patch:
patch -p0 < test.patch // -p0 选项要从当前目录查找目的文件(夹), test.patch为本地文件路径

patch -p1 < test.patch // -p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录(夹), test.patch为本地文件路径
例如两个版本以a,b开头,而a,b并不是真正有效地代码路径,则这时候需要使用"-p1"参数。
a/src/...
b/src

=====================================================================================

当然如果已经安装了小乌龟TortoiseSvn,也可以在本地svn的项目目录下使用小乌龟右键的show log功能查看版本变更日志。

不管用什么工具打出的diff文件,都可以导入到一款叫做phabricator的代码审查系统中进行codeReview,以后的文章中会详细的介绍phabricator这款代码审查工具的安装部署和使用方法,敬请期待!

 

转载于:https://my.oschina.net/bigdataer/blog/2252555

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值