将 svn 文件夹恢复到以前的版本

问题描述 投票:0回答:4

要将 SVN 中的特定文件夹恢复到之前的状态,我当前使用以下命令:

svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/folder@268
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'

对于一个相当常见的用例来说似乎太麻烦了。我一定是做错了。你还能怎么做?

svn version-control
4个回答
95
投票

尝试

svn merge

假设您想从当前 HEAD(最后提交的)版本恢复到修订版

268

cd folder
svn up
svn merge -r HEAD:268 .

然后手动解决任何冲突(如果没有本地更改,应该没有任何冲突)并且:

svn commit -m "reverted to revision 268"

要恢复单个更改(例如修订版

666
中所做的更改):

cd folder
svn merge -c -666 .

要恢复本地更改(尚未提交):

cd folder
svn revert -R .

3
投票

为什么不使用“svn merge”? 这就是为什么:“然后手动解决任何冲突[..]”

如果我知道修订版 268 中的“文件夹”包含我想要继续使用的一致数据,为什么要自动创建与可能不一致的数据的合并,然后再手动删除这些更改。它很容易出错,并且违背了我的配置管理工具的目的。

即我更喜欢最初请求的食谱,并稍加改进。如果您使用“svn导出”来获取旧版本,则不必删除.svn文件:

svn rm folder
svn commit -m 'removed folder to revert to previous version' .
svn export -r 268 http://pathto/repo/folder
svn add folder
svn commit -m 'reverted to the previous version' folder

1
投票

您可以使用

svn merge
完成此任务,请参阅 http://svnbook.red-bean.com/en/1.1/ch04s04.html#svn-ch-4-sect-4.2 有关示例


0
投票

你也可以使用

svn revert folder/*

这将恢复

folder

下的所有文件
© www.soinside.com 2019 - 2024. All rights reserved.