Tortoise SVN:还原

时间:2011-10-06 23:44:45

标签: svn tortoisesvn

我刚从服务器恢复到511到510;然而,即使服务器显然使用510,511仍然在某处,而Tortoise SVN正在考虑511作为头版本,因此认为没有什么可以提交。我该怎么办?

5 个答案:

答案 0 :(得分:7)

我对你的问题的解读是你想要根除版本511并回滚到510.但是,正如其他人所暗示的那样,Subversion永远不会忘记 - 没有办法抹掉修订版。但是你可以很容易地达到同样的效果,我认为一张简单的图片可以很清楚地说明它。

以下是一个示例修订图,您可以从修订版105开始。这里的目标是不仅丢弃105而且丢弃104(显示你可以将这种技术应用于倒数第二个以上),使103成为新头:

  1. 从头版本(本例中为105)的干净,更新的工作副本开始:
  2. 使用还原到修订来回滚到感兴趣的修订版本(在这种情况下为103)。
  3. 使用提交签入您现在修改的工作副本并将其设为新头(本例中为106)。
  4. 你现在通过将其复制为106来有效地回滚到103.(或者从不同的角度来看,你可以说103被转世为106: - 。)

    how to erase a revision

答案 1 :(得分:0)

  • 您无法恢复服务器。您使用 WorkingCopy 工作(总是有一些例外情况),通过提交重新选择Repo
  • 还原(svn help revert)放弃您的本地更改,并使用repo生成“原始WC”和不执行任何操作
  • 将WC更新为任何以前的版本不会更改存储库历史记录 - 历史记录是不可变的

重新思考并重新制定你的任务和麻烦。你想要“撤消上次提交的修订版”吗?

答案 2 :(得分:0)

如果恢复了SVN存储库,或者换句话说又设置了几个版本 - 所有已更新到当前非现有版本的工作副本应该与新的工作副本合并(因为标准没有提供提交日志记录)默认情况下,客户可能会将此作为扩展名。)

所以,创建新的WC(在你的情况下修改这个将是510),并与其中一个GUI合并更改(或只是复制文件)从当前的WC合并到新的WC并将更改提交到新的WC(所有正如您在提交修订版511时所做的那样,然后切换到使用新WC并删除旧WC。

答案 3 :(得分:0)

更新到特定版本很少是您想要做的。您要做的是在日志对话框中选择一组修订,并还原这些修订(在您的案例修订版511中)。请使用干净的工作副本以避免混淆。 Tortoise SVN现在将更改反向合并到您的工作副本中。到目前为止,服务器上的数据仍未受到影响。现在,您必须提交这些更改到服务器上。它将显示为新修订版(在本例中为512)。好的做法是不要更改任何文件并选择适当的日志消息,例如“从rev 511恢复的更改”。

Subversion(并且我不知道版本控制系统)不允许删除修订版,因此这是可行的方法。

答案 4 :(得分:0)

你想做什么?

还原正在撤消本地更改(在工作副本中):   http://svnbook.red-bean.com/en/1.1/re25.html

如果要撤消已提交到存储库的更改,则必须执行反向合并。在您的特定情况下,您必须:     svn merge -c-511

您可以阅读更多的“撤消更改”部分   http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html