Subversion的查看改动历史、放弃修改、反向合并

        提交改动:首先更新svnupdate,发现问题,解决之后运行自动测试工具,测试完成后再提交代码,并且注意一定要附上注释信息svn commit –m “message”。这里需要注意注释信息不是你修改的什么,而是为什么这么修改。因为修改了什么很容易通过diff命令查看,而为什么修改才对后来者有帮助。

        查看改动历史:使用svnlog 命令,带文件名用svn log filename带版本使用svn log –r19:21 filename带冗余信息用svn log –r 24 –vfilename,需要注意的是在使用filename时,路径必须切换到filename所在环境。例如命令行:D:\www.gongqingkui.cn\hello\src\demo>svn log -r 188 -v hello.java跟踪了第188版本的hello.java所做的修改。

D:\www.gongqingkui.cn\hello\src\demo>svn log -r 188 -v hello.java
------------------------------------------------------------------------
r188 | gongqingkui | 2012-11-07 10:35:54 +0800 (星期三, 2012-11-07) | 1 行
改变的路径:
   M /hello/src/demo/hello.java

为了开始集成测试做好提交工作
------------------------------------------------------------------------

        但是这个并不是太详细,使用svnblame filename可以逐行查看修改历史,例如svn blame hello.java可以查看代码所有的修改,结果为:

D:\www.gongqingkui.cn\hello\src\demo>svn blame hello.java
   187 gongqingkui packagedemo;
   140 gongqingkui publicclass hello {
   140 gongqingkui      public static void main(String[] args) {
   140 gongqingkui             System.out.println("hello");
   143 gongqingkui             System.out.println("newline.");
   144 gongqingkui             System.out.println("gongqingkui");
   188 gongqingkui              System.out.println(“集成测试开始”);
   140 gongqingkui      }
   140 gongqingkui }

        为了丢弃本地修改的代码,我们使用svn revert 命令来去掉改正。假设我们修改了许多代码,又不愿意提交,最好使用revert命令而不是删除。因为删除有可能会出错,而revert则不会。现在我们加了一行代码System.out.println("不愿意提交的代码");使用svn status检查发现:

D:\www.gongqingkui.cn\hello\src\demo>svn status
M       hello.java

        也就是说,发现我们对hello.java进行了修改,现在我们并不愿意提交这个修改,想要去掉它。使用svn revert hello.java,再用svn status检查发现修改已经去除了。

        反向合并:现在假设客户在发布版本程序中发现了一个bug(程序代码在某行没有封闭)报告给了我们,这个错误是最新版本才有的,而稍旧版本则没有,我们需要把旧版本合并到新版本中,就是反向合并。下面我们来修改下。

        首先使用svnupdate更新,执行log命令发现第192版本可能有错。

D:\www.gongqingkui.cn\hello\src\demo>svn log
------------------------------------------------------------------------
r192 | gongqingkui | 2012-11-07 10:52:37 +0800 (星期三,2012-11-07) | 1 行
 
        为了测试错误,董**提交了一个不带结束符号的输出语句
------------------------------------------------------------------------

加上-v参数显示冗余信息

D:\www.gongqingkui.cn\hello\src\demo>svn -r 192 -v log
------------------------------------------------------------------------
r192 | gongqingkui | 2012-11-07 10:52:37 +0800 (星期三,2012-11-07) | 1 行
        改变的路径:
   M/hello/src/demo/hello.java
------------------------------------------------------------------------

         为了测试错误,董**提交了一个不带结束符号的输出语句

        以上代码显示,董**在hello.java里提交了一个错误,我们使用svn-v log hello.java查看详细记录,发现最后一个版本192修改了代码。我们对比最后一个和倒数第二个版本:svn diff –r 192:191 hello.java,看出对某行代码进行的修改。现在我们发现这行代码191版本是正确的,我们准备将代码还原到第191版本,使用svn merge –r 192:191 hello.java进行反向合并,合并后提交即可。

        为了对更大代码进行撤销,需要切换到相应目录,执行svn merge –r 192:191 .命令,注意最后的.是表示当前目录。查看本地文件修改使用命令svn status;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gongqingkui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值