我是Mercurial的新手,在我的项目中清理了图像文件夹后,我有大量的文件显示!在'hg status'中。我可以为每个人键入'hg forget',但必须有一个更简单的方法。
那么如何告诉mercurial忘记文件夹中所有已删除的(status =!)文件?
答案 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