SVN版本回滚问题

时间:2010-03-19 13:59:36

标签: svn revision

我正在使用SVN(TortoiseSVN)并经常遇到以下情况:

我想放弃自特定(旧)修订版以来的任何更改,并将所有文件转回此特定(旧版)版本。然后我想进一步工作,好像这个特定的(旧的)修订版是最新版本,即我希望能够将特定的旧版本作为新版本提交。

我找到了解决此问题的几种解决方案(例如stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to-an-older-revision或rustyrazorblade.com/2007/04 /如何对回滚,提交到一个-较早版本的-A-存储库中 - svn的/).

但是,我想知道是否有一种简单的方法可以回滚到特定版本。我认为版本控制对这些事情有好处(或者我误解了什么?)。

是否有简单的命令/按钮/等。将我的本地存储库更新为旧版本并将其声明为最新版本?

由于我认为没有“内置”功能来执行此操作,我想知道是什么原因导致开发人员决定不集成此功能。有人知道吗?

4 个答案:

答案 0 :(得分:3)

无论出于何种原因,SVN民众决定将此称为“反向合并”。在TortoiseSVN Merge对话框中,选中Reverse Merge框,并确保修订框的内容类似于HEAD-324(其中324是您要返回的版本)。

答案 1 :(得分:3)

在TortoiseSVN中,有一种更容易(或至少更直观的恕我直言)的方式来做到这一点。我认为它在幕后实际做的是其他人提到的“反向合并”。

  1. 右键单击要回滚的文件/文件夹。
  2. 点击TortoiseSVN菜单中的“显示日志”。
  3. 选择要撤消的修订版。
  4. 右键单击这些修订。
  5. 选择“还原此版本的更改” - 不要与“还原到此版本”混淆!
  6. 点击“是”
  7. 请记住,这只会更改您的工作副本。确认这符合您的预期,然后提交,在您的日志消息中添加有关“回滚”或“反向合并”的内容

答案 2 :(得分:2)

我不确定我是否理解正确,因为您引用的链接(Roll back or revert entire svn repository to an older revision)已经有解决方案:反向合并(正如Powerlord所说)。

来自TSVN合并文档:

  

如果要将更改合并回来   你的工作副本,以恢复   改变已经存在的   已提交,请选择修订   恢复并确保反向合并   选中框。

我认为重要的是你不要“回滚更改”,而是“将它们合并”,然后重新提交。你可以“继续前进”(因为SVN中没有“逆转”;毕竟它是版本控制,不应该“忘记”))。)。

如果你不小心犯了一些由于某种原因绝对不能存放在存储库中的东西,你必须(并且可以)更加努力地“再次把它拿出来”(在你链接的线程中也有描述:备份和恢复)。

答案 3 :(得分:-2)

我会将当前的主干移动到分支中以便安全保存,然后在您希望恢复为主干的修订号上复制。