【问题标题】:using hg revert to revert a group of files in Mercurial使用 hg revert 恢复 Mercurial 中的一组文件
【发布时间】:2012-04-10 14:19:56
【问题描述】:

我正在使用 Mercurial 读取和调试一个复杂的项目,并且我对项目的修改可以清楚地分为不同的文件组。比如我修改了四个文件

src1.cc src1.hh src2.cc src2.hh

很明显,我可以将它们分成两个文件组,例如组 src1 包括src1.cc src1.hh,组 src2 包括src2.cc src2.hh

我想知道是否可以通过一个简单的命令(如“hg revert group-name-alias”)来恢复一组文件,而不是列出组的所有文件名,如果我修改了很多文件,这是一个糟糕的主意?

非常感谢任何帮助!

【问题讨论】:

标签: mercurial revert


【解决方案1】:

如果文件名符合模式,您可以使用该模式:

hg revert src1* 

hg revert src1*.*

如果这些文件位于特定目录中,您可以这样做:

hg revert dir\*

如果目录的深度超过一层,并且您想要获取该目录及其所有子目录,则可以使用该命令的此版本:

hg revert dir\**\*

【讨论】:

    【解决方案2】:

    根据我对您的用例的了解,您可以:

    1. hg revert 命令中使用模式。这意味着您可以 运行hg revert src1* 恢复所有第一组。

      不过,您的资料很可能在子文件夹中,谢天谢地 您可以为revert 命令指定父文件夹。

      所以说你的文件真的很像:foo/src1.ccfoo/src1.hhbar/src2.ccbar/src2.hh。在这种情况下,您可以还原所有 第二组hg revert bar,假设您在顶部文件夹中。 如果您已经在bar 文件夹中,则可以运行hg revert .

      您可以指定多种模式。

    2. 如果您的每个“文件组”也是 不同的工作单元(不同的错误修复或功能)。这不是 不过,如果所有文件都属于同一个工作单元,那就太理想了。

    【讨论】:

      【解决方案3】:

      没有。据我所知,Mercurial 没有对文件进行分组的机制。

      你可以用别名做一些诡计([alias] revert-group-name = revert src2.cc src2.hh in ~/.hgrc),但别名只能是前缀,不能执行变量扩展。

      如果您的文件足够简单,您可以使用 shell 通配符 (hg revert src2*) 或 shell 变量(GROUP_NAME="src2.cc src2.hh",然后是 hg revert $GROUP_NAME)。

      您也可以考虑编写一个小的 Mercurial 扩展。如果你了解 Python,它们不会花很长时间(我的第一次花了大约 30 分钟)。

      【讨论】:

        猜你喜欢
        • 2011-01-15
        • 2019-01-06
        • 2019-03-09
        • 2012-12-18
        • 2011-05-07
        • 2017-11-12
        • 2012-11-25
        • 1970-01-01
        • 2012-01-01
        相关资源
        最近更新 更多