如何使用Mercurial忘记所有删除的文件

时间:2010-03-24 16:47:12

标签: mercurial

我是Mercurial的新手,在我的项目中清理了图像文件夹后,我有大量的文件显示!在'hg status'中。我可以为每个人键入'hg forget',但必须有一个更简单的方法。

那么如何告诉mercurial忘记文件夹中所有已删除的(status =!)文件?

5 个答案:

答案 0 :(得分:27)

如果您还可以添加任何存在但未被忽略的文件,那么:

hg addremove

这是一种流行的方式。

答案 1 :(得分:9)

使用fileset(Mercurial 1.9):

hg forget "set:deleted()"

一般情况下,在Linux或Mac上:

hg status -dn | while read file ; do hg forget "$file" ; done

或者,如果你的shell允许它,如果没有太多文件,并且文件名不包含空格或特殊字符,那么:

hg forget $(hg st -dn)

答案 2 :(得分:3)

您可以尝试:

hg forget -I '*'

以便在忘记命令中包含所有文件。

答案 3 :(得分:1)

使用-d标志显示缺少文件的状态:

for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done

在您的回购根目录中运行此功能,如果您对结果感到满意,请移除echo

这比接受任何额外工作的答案有奖励,例如:添加一堆未跟踪的文件。

答案 4 :(得分:0)

更短而不是

for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done

hg status -d | cut -d " " -f 2 | xargs echo hg forget # test case
hg status -d | cut -d " " -f 2 | xargs hg forget # real work