从repo中删除目录?

时间:2010-10-12 17:14:18

标签: mercurial

我想从repo中删除目录及其中的所有文件。

我已使用'hg remove'删除了所有文件,但如何删除目录本身?

一旦我提交了所有删除的文件,它会自动消失吗?

谢谢!

3 个答案:

答案 0 :(得分:22)

是。因为mercurial根本不跟踪目录,只跟踪文件,它只创建包含文件的目录,如果有人hg updates修改任何变空的目录,则会自动删除。所以如果你这样做:

hg remove directory/*
hg commit -m 'removed all files in directory'
hg update -r 0   # updates to a different revision
hg update tip    # jump back to the tip

最后一次更新会删除目录。对于其他人来说,它更容易。当他们hg update对您的新更改时,他们的目录将会消失(前提是他们没有未提交的文件)。

答案 1 :(得分:10)

hg remove dir

如果您最终得到了空目录并且想要摆脱它们,那么一种简单的方法就是清除扩展。 (在.hrgc文件中的 [extensions] 组下添加 purge = 以解锁)。

然后您可以使用

hg purge

清理空的dirs ...你必须小心使用purge命令,因为它删除了你的repos中未跟踪的所有内容。我强烈建议你运行

hg purge -p

事先看看命令会做什么(-p将打印“测试运行”而不做任何事情。)永远不要忘记 - help 选项! ;)

编辑:我更喜欢使用purge来连续更新hg,因为更新触发器会在我的IDE中重建(如果它是打开的)(当我这样做时,这是一个很好的选择)。 hg purge可能会更顺畅。你也可以使用--all来包含被忽略的文件(但必须小心)。

答案 2 :(得分:2)

要删除目录,请执行

hg remove <dir>
hg commit -m "..."

这将删除目录及其下的所有文件。