如何将全部或部分提交回滚到svn?

时间:2009-03-04 18:37:36

标签: svn tortoisesvn rollback

如何使用TortoiseSVN恢复全部或部分SVN提交?

4 个答案:

答案 0 :(得分:15)

首先,您需要确定要恢复修订版的“所有更改”,或仅恢复单个文件。 TortoiseSVN只有“1或全部”方法;意思是,您可以恢复整个签到集或单个文件:不是部分签入。

整个变更集

因此,如果还原特定修订版(并且您希望更改该更改集中的所有文件),则需要右键单击 - > TortoiseSVN - >显示日志。找到要回滚的修订版/变更集,右键单击该修订版“还原到此版本”。

还有另一个可能感兴趣的选项,即“从此修订版还原更改”,它将在该修订版本与当前版本之间进行差异合并,并仅合并差异。我发现这有时更吸引人;所以,我可以保持变更集之间的所有变化。

单个文件

另一种选择是还原单个文件。您将再次进行右键单击 - > TortoiseSVN - >显示日志;但这一次,您可以选择单个文件。

TortoiseSVN不允许您在变更集中选择多个文件以恢复为。它可以是全部,也可以只是1.

变更集签到

对于所有其他人阅读,请确保“签到”仅涉及与该更改相关的文件。这应该是现在常见的做法;但是,我仍然发现开发人员在当天结束时“点击”了支票,将当天的所有更改捆绑到一张签到。

我眯着眼睛看着那些开玩笑的人。 -_ ^

答案 1 :(得分:5)

如果您想恢复以前提交的提交(修订版):

使用资源管理器:

  1. 右键单击要还原的文件/文件夹,
  2. TortoiseSVN-> show log,
  3. 右键单击不需要的修订,
  4. “还原此版本的更改”,
  5. commit->确定
  6. 如果您要撤消本地更改(未提交)

    使用资源管理器:右键单击文件,TortoiseSVN->还原。

答案 2 :(得分:2)

另外,根据Bartek的说法,您可以签出对本地工作副本的特定修订,然后将其提交给负责人。

答案 3 :(得分:2)

请注意,您只能在签入新修订版的意义上“恢复”,该修订版不再包含您要恢复的修改。这在其他答案中有所描述。

你可以实际撤消签入(如“它从未发生过”),旧状态仍将在存储库的历史记录中。

真正撤消/删除内容是一项长期存在的功能要求:

http://subversion.tigris.org/issues/show_bug.cgi?id=516