2010-10-22 113 views
4

我正在寻找从本地和中央存储库中删除目录。我设法如何在Mercurial的中央存储库中删除目录

 hg remove name_directoriy 
    hg commit 

但是做本地,推着我的变化到中央存储库中删除的文件夹仍然是在中央资料库,同时它在当地消失了。

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

谢谢

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

回答

4

如果你的意思是你想从中央资料库的历史中删除它,答案是你不能 - 那不是版本控制如何工作。

如果你的意思是你的远程仓库有一个工作目录,你希望文件消失,那么你可能需要在该远程仓库上运行hg update

+0

谢谢,但'hg更新'没有奏效。任何其他建议? – latvian 2010-10-22 17:42:24

+1

'name_directoriy'中是否还有文件?如果某些被忽略的文件以某种方式进入,hg将不会删除该目录。 – 2010-10-22 19:49:21

2

中央存储库的思想对于mercurial来说是陌生的,所有的存储库都是平等的,因此只有在考虑你的工作流程时,中央存储库的想法才有用。

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

与其他SCM一样,Mercurial不会从历史记录中删除文件或目录,因为这会破坏其整个目的,因此您最好问自己为什么要删除它,是否真的可以(如目录中充满了公共存储库中敏感的医疗记录),还是仅仅是一个不再需要的目录?如果答案是后者,就让它一个人留下吧,会很高兴它在那里,如果你真的需要删除它,请看看around here

+0

感谢您的重播。回答这个问题,它只是不需要的目录。我想删除它以避免混淆其他人(设想10或20就像这样的目录)并且消除其他人使用'删除'目录的机会。我认为它有足够的理由来删除......最后,我不想受到技术的限制。再次,我不是试图从历史中删除,但它只是不会出现在那里 – latvian 2010-10-22 17:40:52

6

要在远程资源库做的是:

hg update 

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

正如其他人指出的那些文件,当然,仍然存在于历史中,但如果你想让他们脱离工作目录,那么你就错过了update

+0

感谢您的重播。 'hg更新'不做这项工作。我仍然可以在中央存储库中看到已删除的目录 – latvian 2010-10-22 17:34:59

+0

当您说“在中央存储库中查看它”时,您在哪里看到它?你在看网页界面(hgweb或bitbucket)吗?你在看文件系统并做一个目录列表吗?你真的看到目录中的文件或只是目录?在服务器上运行时,“hg summary”是什么意思?最后,你是否正确地在远程服务器上的shell上运行'hg update',而不是在本地? – 2010-10-22 17:41:03

+0

...让我试着回答最好的我知道的。它运行在Web界面上,但我不确定它是hgweb还是bitbucket,我该如何判断?我在文件系统上做“dir”来看。 “hg status”没有显示,因为我已经提交。哦,我明白了,我在本地进行了更新,但是我需要在服务器上进行更新,以便服务器与中央服务器同步,正确吗?...我会尽快尝试,并会尽快回复您。再次感谢您 – latvian 2010-10-22 17:49:35

相关问题