使用hg revert在Mercurial中还原一组文件
我正在使用Mercurial阅读和调试一个复杂的项目,我对项目的修改可以清楚地划分为不同的文件组。例如,如果我修改了四个文件使用hg revert在Mercurial中还原一组文件,mercurial,revert,Mercurial,Revert,我正在使用Mercurial阅读和调试一个复杂的项目,我对项目的修改可以清楚地划分为不同的文件组。例如,如果我修改了四个文件 src1.cc src1.hh src2.cc src2.hh 很明显,我可以将它们分为两个文件组,例如组src1 includessrc1.cc src1.hh和组src2 includessrc2.cc src2.hh 我想知道我是否可以通过像“hg revert group name alias”这样的简单命令来还原一组文件,而不是列出该组的所有文件名,如果我修改
src1.cc src1.hh src2.cc src2.hh
很明显,我可以将它们分为两个文件组,例如组src1 includessrc1.cc src1.hh
和组src2 includessrc2.cc src2.hh
我想知道我是否可以通过像“hg revert group name alias”这样的简单命令来还原一组文件,而不是列出该组的所有文件名,如果我修改了许多文件,这是一个糟糕的主意
非常感谢您的帮助 没有。据我所知,Mercurial没有对文件进行分组的机制 您可以对别名进行一些欺骗(
~/.hgrc
中的[alias]revert group name=revert src2.cc src2.hh
),但别名只能是前缀,不能执行变量扩展
如果您的文件足够简单,您可以使用shell globbing(hg revert src2*
)或shell变量(GROUP\u NAME=“src2.cc src2.hh”
,然后使用hg revert$GROUP\u NAME
)
你也可以考虑写一个微小的扩展。如果您了解Python,它们不会花很长时间(我第一次使用大约30分钟)。根据我对您的用例的理解,您可以:
hg revert
命令中使用模式。这意味着你可以
运行hg revert src1*
以还原所有第一组
不过,很可能你的东西在子文件夹中,谢天谢地
您可以为revert
命令指定父文件夹
因此,假设您的文件真的像:foo/src1.cc
,foo/src1.hh
,
bar/src2.cc
,bar/src2.hh
。在这种情况下,您可以恢复所有
第二组带有hg还原条
,假设您位于顶部文件夹中。
如果您已经在bar
文件夹中,可以运行hg revert.
您可以指定几个模式如果文件名符合模式,则可以使用该模式:
hg revert src1*
或
如果这些文件位于特定目录中,则可以执行以下操作:
hg revert dir\*
如果目录的深度超过一级,并且希望获取该目录及其所有子目录,则可以使用该目录的以下版本:
hg revert dir\**\*
看见
hg revert dir\**\*