【问题标题】:AnkhSvn undo/revert a commitAnkhSvn 撤消/恢复提交
【发布时间】:2011-01-18 11:55:26
【问题描述】:

如何使用 AnkhSvn/VS 2010 撤消/还原我已提交的更改。 (我很清楚你不能在 subversion 存储库中“删除”东西)。

问题很简单, 您正在研究 HEAD(例如 rev 100)。你发现有些东西坏了。您查看历史记录,发现 rev 93 可能是问题所在。您想要还原在 rev 93 中所做的更改,测试并提交这些还原的更改。

虽然我知道如何使用命令行来“撤消”此操作,但您如何在 Visual Studio 中使用 AnkSvn 执行此操作?

【问题讨论】:

  • AnkhSVN 对于日常任务很方便,但我认为它太受限制且太破碎,无法用于简单的更新/提交活动之外的任何事情。
  • @tdammers 撤消更改效果很好。如果有任何问题,您应该提交一份关于它的错误报告以便修复。
  • 我更喜欢使用命令行...我称它为“损坏”并不是因为偶尔出现错误,而是因为它自动假定“在解决方案中”和“在版本控制下”应该是一样的。

标签: visual-studio ankhsvn


【解决方案1】:

转到历史查看器(右键单击解决方案 -> 查看解决方案历史记录),在此处右键单击修订(或修订选择),然后使用上下文菜单中的项目撤消您的更改。

【讨论】:

  • 谢谢。显然,只有在您查看项目或解决方案的历史记录时才有效,而不是文件
【解决方案2】:

我使用以下流程:
解决方案在主干 HEAD 上运行且没有本地文件,右键单击解决方案,转到 Subversion -> 合并

会弹出合并向导。

在第一页选择“合并两个不同的树”

在第二页上,您希望“发件人”是 HEAD(最新版本),“收件人”是要回滚到的特定修订版(在 OP 情况下为 93)并使用“发件人”URL。

在第三页上,对于文本和二进制冲突,我选择了“提示我每个”。我有深度作为“工作副本”,并没有选中“忽略祖先”和“允许未版本化的障碍”。

在最后的合并摘要页面上,首先进行试运行,检查更改是否正确。然后运行合并。

最后,将更改提交到主干。

【讨论】:

    【解决方案3】:

    当我执行 Update to a Specific Version 时,AnkhSVN 无法正常工作,我不断收到有关“请更新过期项目然后重试提交”的错误消息。经过反复试验,我想出了如何使用命令 Revert to this revision 撤消已提交的文件。

    例如,假设您的版本为 4440,并且您想让 4435 成为新的头。使用 Revert to this revision 放弃选定修订后的所有更改。

    如何使之前提交的版本成为新的 HEAD 修订版

    注意:您可能希望还原整个解决方案,但保留在“未完成”修订中所做的一些更改。如果在还原之前是这种情况,您可以:将较新的文件复制到临时位置,进行还原,然后将它们复制回去以还原所有内容,但将一些更改保持在所需状态。

    下面是如何使用 ANKH 和 Tortoise undo/revert a committed change

    ANKH

    在 Visual Studio 中打开解决方案,Right click context menu(这可以是解决方案、项目或任何特定文件)> View History > Select revision > context menu > Revert to this Revision.

    ToirtoiseSVN

    在文件资源管理器中right click on the file or folder(如果您想进行大规模撤消,这甚至可以是顶部文件夹):Show Log 显示修订列表,选择一个修订,然后选择Context MenuRevert to this revision。然后在top folder level do Commit,所有项目都将被还原。

    【讨论】:

      猜你喜欢
      • 2021-06-25
      • 2015-05-29
      • 1970-01-01
      • 2011-10-01
      • 2013-03-30
      • 2018-02-27
      • 2013-10-18
      • 2021-02-17
      • 2017-11-07
      相关资源
      最近更新 更多