linux下svn删除的文件怎么恢复

linux下svn删除的文件怎么恢复,第1张

用TortoiseSVN:
1在本地workingcopy中,用TortoiseSVN->Showlog查看版本库的历史记录。可以用search。
2找到删除该文件或者文件夹的版本,在Logmessage里右键Revertthechangesfromthisrevision。
3该文件或文件夹就被恢复到本地的workingcopy中了。如果是误删除的,commit到Repository里就行了。
用Eclipse的Subclipse插件:
1用Team->ShowSVNRepositoryHistory查看版本库的历史记录。
2找到删除该文件或者文件夹的版本,右键ReverttoXXversion
3该文件或文件夹就被恢复到本地的workingcopy中了。如果是误删除的,commit到Repository里就行了。

在代码的编写过程中,难免有些错误需要修改,或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍、得心应手。下面介绍几种版本回滚的办法:
1推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得最新的SVN版本控制。
*** 作步骤:TortoiseSVN→Show log→选中需要回滚的版本→右键→Export。
之后将修改的文件覆盖到你的最新版本,commit即可。
2 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。
3 若是你想退回到某一个版本,你就可以直接选择TortoiseSVN→update to reversion,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。
4你可以直接选择revert changes from this revision,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。
5可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Update item to reversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。

svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。
比如说当前HEAD为14,而我要恢复成10版本,怎么做?用svn merge:
1 svn update
2
3 svn merge --revision 14:10
4
5 svn commit -m "restore to revision 10"
可能会很奇怪,因为不理解为什么合并能恢复旧版本。
这里要理解一个关键点,就是svn merge的原理。merge是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,我版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。
由于在客户端提交应用程序时的误 *** 作,导致修改了基线版本,此处利用两个命令来进行恢复:
1、将客户端恢复合并到指定版本:
1 svn merge -r 112:111 svn://1921680119/UBoot/trunk/u-boot-133
此步骤将下位机由112恢复到111版本:
2、重新修订基线版本
1 svn commit -m "Undoing change committed in r111"
此步骤将恢复后的111版本提交,但是此时的版本号为113

没必要像appletree0108描述的那么麻烦,而且按那个方法的话有隐患,比如要取整个文件夹的上一个版本时,如果这个版本中已经删除了某些文件,用appletree0108的方法的话,覆盖后那些被删除的文件就仍然存在。
其实 *** 作很简单:
如果你仅仅是想看看上个版本的内容:那么就先查看日志,确认一下上个版本的版本号,然后update到这个版本号就行了(update不仅是更新到最新版本,也可以用来更新到指定的版本);
如果你想恢复到上个版本,并从上个版本开始重新开发,也就是说丢弃这个版本中的修改,那么用TortoiseSVN客户端的话,就右键菜单查看日志,找到上个版本,右键选择“复原到此版本”,然后commit(命令行模式的话就是先反向merge到上个版本,然后commit)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13352324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存