hg从repo中删除目录?

问题描述 投票:18回答:3

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

我已经把所有的文件都用 hg remove但我如何删除目录本身?

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

mercurial
3个回答
23
投票

是的,因为 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 到你的新变化,他们的目录就会消失(前提是他们没有未提交的文件在里面)。


10
投票
hg remove dir

如果你最终得到的是空目录,而你又想摆脱它们,一个简单的方法是清除扩展。(添加 清理= 根据 [扩展] 组来解锁)。)

然后您可以使用

hg purge

来清理空的目录...。你必须小心使用清除命令,因为它将删除所有未被跟踪的仓库。我强烈建议你运行一个

hg purge -p

(-p会在不做任何事情的情况下打印一个 "测试运行")。--帮助 选项! ;)

edit: 我更喜欢连续使用清除而不是hg更新,因为如果我的IDE是打开的,更新会触发它的重建(而且当我这样做的时候,它肯定是打开的)。你也可以使用--all来包含被忽略的文件(虽然必须小心)。


2
投票

要删除一个目录,只要做

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

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

© www.soinside.com 2019 - 2024. All rights reserved.