2011-03-02 42 views
4

我在上一篇文章中谈到了打破东西的言论。如何使用命令行SVN强制还原特定版本号?

我想恢复到修订使用命令svn update -r 1124,但我一直如下收到错误消息:

[prague]$ svn update -r1024 
U app/webroot/css/group_themes/green.css 
U app/webroot/css/style.css 
Skipped 'app/webroot/index.php' 
svn: Failed to add directory 'app/webroot/images/users': an unversioned directory of the same name already exists 

我们得到了一些东西回来了,但仍没有确切的版本我知道我昨天已经签出...我认为这将是更容易,只是恢复到一个特定的修订:(

+0

发布错误消息可能有助于... – 2011-03-02 08:37:54

+0

btw-我觉得我打之前正确的,“SVN更新124”所以,现在我只是想迫使它回到1124 ...我有我的机器上的本地副本,但认为我可以“告诉”svn“撤消”可以这么说 – adam 2011-03-02 08:44:58

+0

根据下面的评论的最新错误$ svn更新-r 1124 跳过的应用程序/ webroot /索引。php' svn:无法添加目录'app/webroot/images/users':一个同名的未版本化的目录已经存在 [prague] $ – adam 2011-03-02 09:05:02

回答

13

没有承诺

尝试在新的空目录中签出修订版本1124,因此不会与已存在的目录发生冲突。

因此svn checkout -r 1124在一个新的目录中。

随着犯

根据svn的手册,如果你想提交以前的版本,你需要使用反向合并。请参阅http://svnbook.red-bean.com/en/1.0/ch04s04.html“撤消更改”。其次

svn commit -m "Rollback merge to revision 1124"

+0

并且一旦它检出一个新的,我应该能够提交版本1124命令行? – adam 2011-03-02 08:51:34

+1

同意。 (Re?)移动目录工作,但完全使用另一个目录结帐可能更容易。 – 2011-03-02 08:55:45

+0

是否有第二步...我检查了新版本到我的本地计算机上的新文件夹中... – adam 2011-03-02 09:04:39

3

无法增加目录

svn merge -c -1124 http://svn.example.com/repos/calc/trunk '应用程序/ Web根目录/图片/用户':同名的版本目录 已经存在

声音对我来说很清楚:已经有一个具有该名称的目录,并且它没有版本控制。您可以选择两件事:删除目录并重新更新,或者重命名(可能最聪明)并再次更新。另外,请自己帮忙,看看SVN的一些替代品,例如Mercurial,Bazaar或Git。我已经找到了开关是非常愉快;)

+0

感谢您的提示...生病肯定会尝试那些 - 我认为SVN /乌龟是我的代码混乱的牌照...但它所做的一切都被带走我害怕打破事情而不真正让事情变得容易 - 甚至我的团队知道这件事情也不会喜欢它 – adam 2011-03-02 08:58:02

0

你可以简单地做使用

svn up -r 1124 

的更新修订但是,这将不会让你提交更改为SVN需要您更新在可以提交之前将工作副本复制到HEAD。你可以做的反而是

svn merge -r HEAD:1124 yourFile 
svn ci yourFile -m "Reverting back to rev 1124 " 
相关问题