如何在Mercurial中删除中央存储库中的目录

时间:2010-10-22 16:00:20

标签: mercurial

我希望从本地和中央存储库中删除目录。我设法通过

在本地完成
     hg remove name_directoriy  
     hg commit

但是,在将我的更改推送到中央存储库后,已删除的文件夹仍在中央存储库中,而在本地存储库中。

如何删除中央存储库中的目录?

谢谢

P.S。 '删除'我的意思是它没有出现,但它仍然在历史中

3 个答案:

答案 0 :(得分:6)

您想要在远程存储库上执行的操作是:

hg update

上面描述的内容删除了该目录中的文件,然后按下更改将文件删除到远程存储库,但它不会更新远程存储库上的工作目录文件。要更新该远程存储库上的工作目录,您需要在那里运行更新命令。

当其他人指出这些文件时,当然,它们仍然存在于历史中,但是如果你想要它们不在工作目录中,那么你就错过了update

答案 1 :(得分:4)

如果您的意思是要从中央存储库的历史记录中删除它,答案是您不能 - 这不是版本控制的工作方式。

如果您的远程存储库具有您希望文件从中消失的工作目录,那么您可能需要在该远程存储库上运行hg update

答案 2 :(得分:2)

中央存储库的概念对于mercurial来说是陌生的,所有存储库都是相同的,因此中央存储库的概念仅在考虑您的工作流时才有用。

这意味着该目录位于存储库的本地副本和您称之为中央副本的历史记录中。

像任何其他SCM一样,Mercurial不会从历史记录中删除文件或目录,因为这会破坏其整个目的,因此您最好问问自己为什么要删除它,它是否真的可以'在那里(就像一个公共存储库中充满敏感医疗记录的目录)或者它只是一个不再需要的目录?如果答案是后者,只要不管它,也许将来你会很高兴它在那里,如果你真的需要删除它,看看around here