2010-10-12 153 views
17

我想从一个回购目录中删除一个目录及其中的所有文件。hg从目录中删除目录?

我已删除了所有与“汞去除”的文件,但我怎么删除目录本身?

将它只是自动消失,一旦我提交所有删除的文件?

谢谢!

回答

21

是。由于mercurial根本不跟踪目录,只有文件,它只会创建包含文件的目录,并且如果有人修改了任何变为空的目录,它们将被自动删除。所以如果你这样做:

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到你的新变化他们的目录将消失(只要他们没有未提交的文件)。

+0

警告:如果您在目录中被忽略的文件,汞会保留他们那里。 – 2010-10-13 01:42:16

+2

请注意,对于我来说,运行windows XP,单引号不适用于提交消息。你必须使用双引号。 – 2011-05-03 13:34:05

2

要删除一个目录,只是

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

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

9
hg remove dir 

如果您最终得到空目录并且想摆脱它们,一个简单的方法就是清除扩展。 (在你的.hrgc文件添加吹扫=[扩展]组解锁)。

然后可以使用

hg purge 

清理空迪尔斯...你必须要小心清除命令,因为它消除一切,这是在你的回购未追踪。我强烈建议你运行一个

hg purge -p 

事先看到什么该命令将执行(-p将打印出“试运行”没有做任何事情。)别忘了--help选择! ;)

编辑:我更喜欢使用吹扫汞柱更新陆续为更新触发我的IDE重建,如果它是开放的(这是一个不错的选择,它是当我这样做)。 hg purge可能会更顺畅。你也可以使用 - all来包含忽略的文件(但必须小心)。