【问题标题】:Revert --all in TortoiseHg Workbench在 TortoiseHg 工作台中恢复 --all
【发布时间】:2013-08-11 20:51:51
【问题描述】:

简单的问题:有没有办法从 TortoiseHg 工作台恢复 --all?我了解如何还原单个文件。理想情况下,我可以单击修订,然后从鼠标右键菜单中找到“全部还原”项。

我在 Ubuntu 机器上使用 TortoiseHg 2.8。

编辑我应该提供有关我的问题的更多详细信息以提供一些上下文。让我描述一下特定的用例:

我想将我的工作目录恢复到过去提交的状态,这样我就可以从我知道是“好”的可执行文件中生成输出。一旦我生成了那个输出,我想回到提示并继续我的开发,保持这个历史线性。从命令行,我做了“hg revert --all --rev 22”,生成了输出,然后是“hg revert --all”,这就是我想要的。 “hg update”将创建一个带有分支的历史记录(如果我理解正确的话)。 FWIW TortoiseHg 中有一个“更新”按钮(在显示文件列表的框中)以及给定修订版的鼠标右键菜单项。

【问题讨论】:

    标签: mercurial tortoisehg revert


    【解决方案1】:

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

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

    在控制台中应该是hg update -r changeset -C

    现在您可以从历史上那个点的工作目录的“状态”创建输出(即从该变更集中的可执行文件)。如果您在此处不进行任何提交,则不会创建任何变更集,因此不会将任何内容添加到 repo 历史记录中。

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

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

    使用update 而不是revert 的好处是Tortoise 将明确显示工作目录的父目录作为其历史变更集。在revert 下,很容易恢复文件并忘记您已恢复到哪个变更集以及您占用了哪些历史记录。

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


    【讨论】:

    • 感谢您的信息。请参阅我的 OP 的编辑。 “更新”主要适用于我想要的,但它比“恢复”更严厉一些,但也许我的用例有点不寻常。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的信息。这种方法的一个困难(除非我遗漏了一些东西)是没有方便的方法来查找在当前工作目录和所需修订之间更改的所有文件。 (有一个“本地差异”,它将调用单独的可视差异工具,但没有从那里启动“恢复”的好方法。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多