我正在使用Mercurial来读取和调试复杂项目,我对项目的修改可以分为不同的文件组。例如,如果我修改了四个文件
src1.cc src1.hh src2.cc src2.hh
显然我可以把它们分成两个文件组,例如组src1包括'src1.cc src1.hh',组src2包括'src2.cc src2.hh'。
我想知道我是否可以通过像'hg revert group-name-alias'之类的简单命令来恢复一组文件,而不是列出该组的所有文件名,如果我修改了很多文件,这是一个很糟糕的主意。
任何帮助真的很感激!
答案 0 :(得分:5)
根据我对您的用例的理解,您可以:
在hg revert
命令中使用模式。这意味着你可以
运行hg revert src1*
以还原所有第一组。
最有可能的是,你的东西是在子文件夹中,谢天谢地
您可以为revert
命令指定父文件夹。
所以说你的文件非常像:foo/src1.cc
,foo/src1.hh
,
bar/src2.cc
,bar/src2.hh
。在这种情况下,您可以还原所有
第二组hg revert bar
,假设您在顶部文件夹中。
如果您已经在bar
文件夹中,则可以运行hg revert .
。
您可以指定多种模式。
如果您的每个“文件组”也是,请使用Mercurial queues 不同的工作单元(不同的错误修复或功能)。这不是 但是,如果所有文件都属于同一工作单元,那么这是理想的。
答案 1 :(得分:4)
没有。据我所知,Mercurial没有分组文件的机制。
你可以用别名([alias] revert-group-name = revert src2.cc src2.hh
中的~/.hgrc
)做一些诡计,但是别名只能是前缀,不能执行变量扩展。
如果您的文件足够简单,您可以使用shell globbing(hg revert src2*
)或shell变量(GROUP_NAME="src2.cc src2.hh"
,然后hg revert $GROUP_NAME
)。
你也可以考虑写一个小的Mercurial扩展。如果你了解Python,它们不需要很长时间(我第一次花了大约30分钟)。
答案 2 :(得分:1)
如果文件名符合模式,则可以使用该模式:
hg revert src1*
或
hg revert src1*.*
如果这些文件位于特定目录中,您可以执行以下操作:
hg revert dir\*
如果目录深度超过一级并且您想要获取该目录及其所有子目录,则可以使用此版本的推荐:
hg revert dir\**\*