我想从repo中删除一个目录和其中的所有文件。
我已经把所有的文件都用 hg remove
但我如何删除目录本身?
一旦我提交了所有被删除的文件,它就会自动消失吗?
是的,因为 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
到你的新变化,他们的目录就会消失(前提是他们没有未提交的文件在里面)。
hg remove dir
如果你最终得到的是空目录,而你又想摆脱它们,一个简单的方法是清除扩展。(添加 清理= 根据 [扩展] 组来解锁)。)
然后您可以使用
hg purge
来清理空的目录...。你必须小心使用清除命令,因为它将删除所有未被跟踪的仓库。我强烈建议你运行一个
hg purge -p
(-p会在不做任何事情的情况下打印一个 "测试运行")。--帮助 选项! ;)
edit: 我更喜欢连续使用清除而不是hg更新,因为如果我的IDE是打开的,更新会触发它的重建(而且当我这样做的时候,它肯定是打开的)。你也可以使用--all来包含被忽略的文件(虽然必须小心)。
要删除一个目录,只要做
hg remove <dir>
hg commit -m "..."
这将删除该目录及其下的所有文件。