在TortoiseHg工作台中执行“Revert --all”的操作

7
简单的问题:是否有一种方法可以从TortoiseHg工作台中恢复--all?我知道如何还原单个文件。理想情况下,我可以点击一个修订版本,并从右键菜单中找到“还原所有”项目。
我在Ubuntu框上使用TortoiseHg 2.8。
编辑我应该提供更多关于我的问题的细节来提供一些背景。让我描述一下特定的用例:
我想将我的工作目录恢复到过去提交的状态,这样我就可以从可执行文件生成我知道是“好”的输出。一旦我生成了那个输出,我想回到顶部并继续开发,保持这个历史线性。从命令行,我做了“hg revert --all --rev 22”,生成了输出,然后“hg revert --all”,这就是我想要的。 “hg update”会创建一个带有分支的历史记录(如果我理解正确的话)。FWIW,在TortoiseHg中有一个“更新”按钮(在显示文件列表的框中),以及给定修订版本的右键菜单项。
2个回答

10

要将工作目录设置为与给定变更集的状态相匹配(可能是 tip),您可以使用 Update:

  1. 右键单击要“还原”到的变更集。
  2. 选择“更新”
  3. 选中“放弃本地更改”复选框
  4. 点击“更新”

在控制台中,它会是 hg update -r changeset -C

现在,您可以从该历史记录点的“状态”创建输出(即从该变更集中的可执行文件)。如果您在这里不进行任何提交,则不会创建任何变更集,因此不会向存储库历史记录添加任何内容。

一旦满意输出,您可以通过相同的过程再次更新到开发的 tip 并继续您的工作:

  1. 右键单击开发的 tip
  2. 选择“更新”
  3. 选中“放弃本地更改”复选框
  4. 点击“更新”

使用 update 而不是 revert 的好处是 Tortoise 将明确显示工作目录的父项为历史中的变更集。在 revert 下,可能很容易还原文件并迷失在还原到哪个变更集以及占用历史记录的哪个部分中。

(这是假设您想移动到历史记录中的该点。如果您需要创建撤消之前变更集的变更集,请查看 backout,尽管我不确定它是否可在 Tortoise 中使用。)



感谢提供信息。请看我的OP的编辑。“更新”基本上可以达到我想要的效果,但是它的操作可能比“回滚”更加强制,不过也许我的应用场景有点不寻常。 - adt_Jeff

0

您可以使用Ctrl+A选择列表中的所有修改文件,然后从上下文菜单中选择“还原”。


感谢提供信息。这种方法的一个困难之处(除非我漏掉了什么)是没有方便的方法来查找当前工作目录和所需修订版本之间所有已更改的文件。(有一个“diff to local”选项,它将调用单独的可视化差异工具,但没有很好的方法从那里启动“还原”操作。) - adt_Jeff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接