2011-11-16 54 views
0

今天我试图从subversion(版本#140)加载我的项目以前的版本,只发现在版本120中发生了错误的提交:尝试从版本加载任何版本的项目120开始导致丢失文件等。因此,有效地,修订120+是不可用的。回滚颠覆历史条目

但是,我仍然有一个完全没问题的未提交工作副本的计划是在visual studio中修订141。

我真的很不熟悉SVN的命令,不想把它弄糟! 将存储库返回到可行状态并将HEAD版本更新为与我的工作副本/ 141相匹配的最佳策略是什么?

我在VS2010中使用AnkhSVN 2.3。服务器不在本地,但我可以访问SVN的命令行。

谢谢!

p.s我假设我将失去修改120-140:只要提交141应用在120-140中进行的所有净更改就可以了。

+0

的可能重复的[AnkhSVN的撤销/恢复提交](http://stackoverflow.com/questions/4723745/ankhsvn-undo-revert-a-commit) –

回答

3

我不知道你是什么意思不好犯,但你可以考虑执行“反向合并”,这将在修订版141,并更新你的工作拷贝,并把它作为转142

取决于你的SVN客户端,有更简单的方法来实现这一点。在Tortoise SVN中,您可以打开日志,选择rev 119,右键单击并选择“还原到此版本”

如果您使用的是命令行,请检出单独的工作副本,转到工作副本并执行反向合并

svn merge -r HEAD:119 http://your_svn_url 

考虑的章节阅读http://svnbook.red-bean.com/关于 “撤消更改”


更新:我错误地输入119 199

+0

'坏'提交,我的意思是我犯了一些东西,似乎已经塞满了一切一个主要方法。例如虽然它列出了提交120,但试图在该修订上尝试各种功能会将该消息返回为'提交120不存在'的效果。类似于任何文件提交后120. 合并拒绝工作,所以,基于你的答案,我想我已经得到了一个转储到119,与转储启动一个新的存储库,并合并到那。感谢您将我带入正确的轨道:) – user495625

+0

如果您仅仅意味着提交您不想要的东西,并且希望HEAD在执行“坏”提交时拥有状态,那么我认为我提供的方式应该是要走的路。转储/恢复似乎是为了这样的目的而矫枉过正。 –

0

AnkhSVN历史记录查看器具有选项'恢复从此修订更改'和'恢复到此修订',它会自动处理这些情况。

为了从本修订R119还原更改等效于svn merge -c -r119 http://your_svn_url(-c R119等效于-r 119:118)

还原为此修订则相当于svn merge -r HEAD:119