从repo中删除目录?

AP2*_*257 17 mercurial

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

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

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

谢谢!

Ry4*_*ase 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
Run Code Online (Sandbox Code Playgroud)

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

  • 警告:如果您忽略了目录中的文件,hg 会将它们保留在那里。 (2认同)
  • 请注意,对我来说,运行Windows XP,单引号不适用于提交消息.你必须使用双引号. (2认同)

Eri*_*arl 10

hg remove dir
Run Code Online (Sandbox Code Playgroud)

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

然后你可以使用

hg purge
Run Code Online (Sandbox Code Playgroud)

清理空的dirs ...你必须小心清除命令,因为它删除了你的回购中未跟踪的所有内容.我强烈建议你跑一个

hg purge -p
Run Code Online (Sandbox Code Playgroud)

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

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