2011-03-27 29 views
2

对于我当前的项目,我使用Mercurial并将其托管在Bitbucket上。清理版本控制中未使用的旧大文件

这是我第一个真正正确使用版本控制的项目,所以我犯了一些错误。其中之一是我用代码存储了我的项目在存储库中使用的所有(未压缩)声音文件。

因此,现在即使我不再将这些文件存储在那里,第一次从服务器拉出仍然需要相当长的时间(我猜存储库会保存所有这些以便我可以如果我想恢复这些文件?),并且该项目占用的空间比应该多。

这不是一个大问题,但我想知道什么是现在修复它的好方法。此外,这种对资源库的“破坏性”编辑是否会影响与其他分支的“兼容性”(即会产生推动分支间变化的问题)?

谢谢!如果需要更多细节,请在评论中提问。

类似/有关:How to cleanup Mercurial repository?

回答

3

您可以使用convert extension和命令重建回购和删除特定的文件,而这样做。但是,正如你猜对的那样,这种改变确实会产生新的变更集哈希值,并因此破坏与其他分支的“兼容性”。

+1

以这种方式存储库的完整性是一把双刃剑,而我们将不得不忍受这样的错误。 – invert 2011-03-28 07:42:58

+0

感谢您的回答。现在,通过我理解哈希与mercurial一起工作的方式来判断,如果我执行相同的确切操作(比如从变更集X中删除某个文件A),那么在repo 1和它的分支2中(其中分支发生在稍后的变更集中X的后裔),是不是应该以相同的方式重新组织(并因此继续兼容)? (我会在我的回购库的一些副本上进行实际测试,看看它是否可以实现) – 2011-03-28 14:42:53

+0

不,因为对父变更集的引用也包含在内,所以如果父变更不一致,就会改变散列值。 – Lucero 2011-03-28 17:17:24

1

此外,将库的这种“破坏性”的编辑影响与其它叉“兼容”?

是的,会的。对你有好的想法!它将成为一个新的存储库。