使用 Windows TortoiseSVN将我的工作副本恢复到以前的版本的最简单方法是什么?
我没有找到任何“可找到”的命令来快速做到这一点。
使用 Windows TortoiseSVN将我的工作副本恢复到以前的版本的最简单方法是什么?
我没有找到任何“可找到”的命令来快速做到这一点。
有几种方法可以做到这一点。但不要只是按照这里的建议更新到较早的版本。
从单个修订版或一系列修订版还原更改的最简单方法是使用修订日志对话框。这也是您想要放弃最近的更改并将较早的修订版作为新 HEAD 的方法。
Show All
或Next 100
显示您感兴趣的修订。Context Menu
→Revert
从此修订更改。Context Menu
→ Revert to this revision
。这将放弃选定修订后的所有更改。您已恢复工作副本中的更改。检查结果,然后提交更改。
所有解决方案都在“我如何... ”中进行了解释。TortoiseSVN 文档的一部分。
我使用了相同的说明Stefan
,取自Tortoise 网站。
但重要的是在 之后单击 COMMIT。直到我意识到这一点,我才变得疯狂。
如果您需要进行较旧的修订,则您的头部修订请执行以下操作:
选择需要还原更改的文件或文件夹。如果要还原所有更改,这应该是顶级文件夹。
选择 TortoiseSVN → 显示日志以显示修订列表。您可能需要使用 Show All 或 Next 100 来显示您感兴趣的修订。
右键单击选定的修订,然后选择上下文菜单 → 恢复到此修订。这将放弃选定修订后的所有更改。
做出承诺。
右键单击受 SVN 控制的文件夹,转到TortoiseSVN →显示日志。写下你想要恢复的版本,然后去TortoiseSVN →更新到版本...。
上下文菜单中的 Revert 命令会忽略您的编辑并将工作副本返回到其先前状态。当您从存储库中“签出”时,您还可以选择“头”以外的所需修订。
这是另一种非正统但有效的方法*。
我最近发现自己处于检查破坏代码的情况,知道在所有集成工作完成之前我无法更新我们的生产代码(回想起来这是一个错误的决定,但我们没有预计会停滞不前,但其他项目优先)。那是几个月前的事了,整合一直停滞不前。随之而来的要求是更改基本代码并在上周将其投入生产,而无需进行重大更改。
这是我们所做的:
在我签入之前验证新要求在使用修订版时不会破坏任何内容后,我制作了包含新代码的工作目录的副本。然后我删除了工作目录中的所有内容并检查了我想要的版本。然后我删除了我刚刚签出的所有文件,并从工作副本中复制了这些文件。然后我提交了该更改,有效地从存储库中清除了重大更改,并将生产代码作为主要修订版本。我们仍然有可用的重大更改,但它不再在头部修订中,因此我们可以继续进行生产。
*我不推荐这种方法,但如果你发现自己处于类似的情况,这是一个不会太痛苦的出路。
在 TortoiseSVN 上下文菜单中,选择“更新到修订版”,输入所需的修订版号,然后瞧 :)