2011-10-06 121 views
2

我刚刚在服务器从511恢复到510;然而,尽管服务器明显与510一起工作,但511仍然是某个地方,而Tortoise SVN正在考虑511作为头版本,因此认为没有什么可提交的。我能做什么?龟SVN:恢复

+0

最有可能的,你有没有** **恢复,但只是** **更新至510 – zerkms

+0

你怎么在服务器平均恢复?服务器使用510的含义是什么?详细说明迄今为止您已完成的步骤。 – manojlds

+0

是的,我更新到510 ...我做了svn更新-r 510 ...我能做什么? – luqita

回答

7

我你的问题的解读是,要根除版511并回滚到510.然而,正如其他人所暗示的那样,Subversion从不会忘记 - 无法抹去修订版。但你可以很容易地达到相同的效果,我认为一个简单的图片可以清楚地说明它。

这里是一个样例修订图,其中您以修订版105作为开头。这里的目标是要抛弃不只是105也是104(显示你可以应用此技术不只是倒数第二头以上),使103的新掌门人:

  1. 开始用干净的,更新的,工作在副本头部修订版(本例中为105):
  2. 使用恢复到修订版以回滚到感兴趣的修订(本例为103)。
  3. 使用承诺签入您现在修改的工作副本,并使其成为新的头(在这种情况下,106)。

现在通过将其复制为106,现在已经有效地回滚到103.(或者从不同的角度来看,可以说103被转生为106 :-)。

how to erase a revision

0
  • 您不能还原服务器。你的工作(总是有一些例外)与WorkingCopy,其中与relected变化提交到回购
  • 还原(svn help revert)放弃你的本地修改,并产生“原始WC”和无可奈何与回购
  • 更新WC到任何以前的版本不会更改存储库历史记录 - 历史记录是不可变的

重新思考并重新构建您的任务和烦恼。你想“撤消上次提交修订版”吗?

0

如果SVN存储库已被还原,或换句话说被设置了多个修订版本 - 已更新到当前不存在修订版的所有工作副本应与新工作副本合并(因为没有提交提交日志记录标准客户端默认情况下,也许有人有这个作为扩展)。

因此,创建新的WC(在你的情况下,修改版本将为510),并将当前WC中的一个GUI合并更改(或仅复制文件)合并到新WC中,并将更改提交到新WC中所有的操作和你在511版中所做的一样),然后切换到使用新的WC并删除旧的。

0

更新到一个特定的修订版很少是你想要做的。您想要做的是在日志对话框中选择一组修订版,并且还原这些修订版(在您的版本中为修订版511)。为了避免混淆,请使用干净的工作副本。龟SVN现在反向合并变化到您的工作副本。到目前为止,服务器上的数据仍然没有变化。现在您必须将提交这些更改到服务器上。它将显示为新版本(在这种情况下为512)。好的做法是不要更改任何文件并选择正确的日志消息,如“从第511版起恢复的更改”。

Subversion(我知道没有版本控制系统)不允许删除修订版,所以这是要走的路。