svn 之"回到以前的版本"
2016-06-03 13:46
351 查看
这里讲的包括两个部分的revert方法:1.本地的work copy 2.远程的svn仓库repository
最近在网络上查询关于svn 服务器的repository版本回退问题,今天在网上发现了不错的解决方法,特此把它记录起来
1.本地work copy的版本回退:
由于Subversion会记录你对Repository的每一次修改,
因此能够很容易的获得Repository以前某一时刻的状态。
比如:现在Repository的最新Revision是56,
这时我想看看Repository在Revision24时的状态,
可以在本地的Working Copy中单击右键,
TortoiseSVN->Update to Revision...,
然后输入你想要回复到的Revision号,点OK按钮。
2.svn服务器的repository版本回退:
回到以前的版本还有一种情况是我想将Repository的
最新Revision的状态与以前某一个Revision的状态一模一样,
上面那种方法就不适合,
上面的那种方法只是将本地的Working Copy回复到以前的状态,
而服务器端的Repository并没有回到以前的状态。
将Repository的最新Revison的状态回复到以前某个Revision的状态具体的方法是:
先执行Update命令将Working Copy更新到最新的Revision,
然后在Working Copy中单击右键,
TortoiseSVN->Show Log,
弹出的Log Messages窗口中会显示该Repository的所有Revision,
选中最新的Revision,之后按住Shift键,
再单击你想回复到的Revision+1的那个Revision
(比如Repository的最新Revision是30,
你想将Repository的状态回复到Revision16,
那么就选中Revision30,再按住Shift键,
选中Revision17,
就是说选中Revision17到Revision30之间的所有Revision)。
然后在选中的Revision上单击右键,
选中“Revert changes from these revision”。
再点Yes按钮,就可以将Working Copy的状态回复到目标Revision。
注意,此时只是Working Copy回复到目标Revision,
之后应该用Commit提交修改,
这样Repository最新状态就与目标Revision的状态一样了。
总结:
最近在网络上查询关于svn 服务器的repository版本回退问题,今天在网上发现了不错的解决方法,特此把它记录起来
1.本地work copy的版本回退:
由于Subversion会记录你对Repository的每一次修改,
因此能够很容易的获得Repository以前某一时刻的状态。
比如:现在Repository的最新Revision是56,
这时我想看看Repository在Revision24时的状态,
可以在本地的Working Copy中单击右键,
TortoiseSVN->Update to Revision...,
然后输入你想要回复到的Revision号,点OK按钮。
2.svn服务器的repository版本回退:
回到以前的版本还有一种情况是我想将Repository的
最新Revision的状态与以前某一个Revision的状态一模一样,
上面那种方法就不适合,
上面的那种方法只是将本地的Working Copy回复到以前的状态,
而服务器端的Repository并没有回到以前的状态。
将Repository的最新Revison的状态回复到以前某个Revision的状态具体的方法是:
先执行Update命令将Working Copy更新到最新的Revision,
然后在Working Copy中单击右键,
TortoiseSVN->Show Log,
弹出的Log Messages窗口中会显示该Repository的所有Revision,
选中最新的Revision,之后按住Shift键,
再单击你想回复到的Revision+1的那个Revision
(比如Repository的最新Revision是30,
你想将Repository的状态回复到Revision16,
那么就选中Revision30,再按住Shift键,
选中Revision17,
就是说选中Revision17到Revision30之间的所有Revision)。
然后在选中的Revision上单击右键,
选中“Revert changes from these revision”。
再点Yes按钮,就可以将Working Copy的状态回复到目标Revision。
注意,此时只是Working Copy回复到目标Revision,
之后应该用Commit提交修改,
这样Repository最新状态就与目标Revision的状态一样了。
总结:
这两种回复到以前版本的方式截然不同, 第一种方式是将整个Working Copy回复到某个Revision, 也就是说这种方式Working Copy中的“.svn”目录所存的文件副本也与目标Revision的一模一样, 如果这时你没有修改文件,你将不能执行Commit命令。 而第二种方式客户端Working Copy中的 “.svn”目录所存的副本始终是最新的Revision的文件副本 (这里我们基于一个假设:在Update之后没有其他人对Repository做修改)。 这种方式就像是我们自己手工将Working Copy的文件状态修改为目标Revision, 在修改之后提交修改一样。
相关文章推荐
- 2.菜单和按钮-easyUi
- 功能源代码(扇形进度)及Delegate运用在开放事件中、UINavigationController的封装
- 就学术诚信与职业道德的思考
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- maven repository
- 进程终止
- QT5.2+Wireshark的pipe通讯问题
- 慎用ArrayList的contains方法,使用HashSet的contains方法代替
- Java微信开发(二)之环境搭建
- SetActiveView、SetFocus
- formtarget属性
- 数据安全,MD5、SHA1加密字符串
- yum安装lamp
- Android退出所有Activity最优雅的方式
- 最近打算对于电脑的G460进行改装下,发现了两篇技术贴
- 专注docker安全:Security Scanning
- Maven仓库:mirror和repository 区别
- 关于expdp在服务器上同时只能有一个进程在执行的问题
- phpdesigner 的配置