我正在尝试将现有项目导入Mercurial。该项目略高于5GB。
当我尝试执行hg推送时,我总是会遇到关于超出缓冲区空间的错误。
有没有人知道做初始提交的好方法?
答案 0 :(得分:1)
如果您没有使用Mercurial,那么另一种可能性就是使用 boar 。它不是像Mercurial那样的DVCS,而是你有一个中央存储库,你可以在其中存储你的数据,并“检查”文件的版本 - 与Subversion的方式非常相似。
重要的是,它的写作目的是存储大型二进制文件。
我没有使用它,所以我不能评论它的工作有多好,或者它的稳定程度,但它可能是一个可能适合你需要的替代方案。
答案 1 :(得分:0)
假设你确实需要将这么大的提交放到Mercurial中,我猜想,而不是几百万个小文件,你提交的大小主要是由于一些biiiig文件。在这种情况下,您可以调查Large Files Extension,它应该符合您的需求。当您添加一个大文件时,它会通过校验和而非内容进行跟踪,因此Mercurial本身跟踪的内容相对较小。扩展程序将为您处理版本。
然而,正如Alex Stuckey所提到的,你通常不应该提交诸如编译的二进制文件(目标代码,生成的可执行文件......等),这是你有这么大提交的最可能的原因。你最好创建一个体面的.hgignore
文件(一个删除通常的嫌疑人 - *.o
,*.pdb
,无论如何......),这将有助于消除意外添加这样的文件在将来。我有一个标准的.hgignore
,它作为第一次提交几乎被放入我的所有存储库中,并且对我很有帮助。
答案 2 :(得分:0)
为了简要说明为什么不鼓励在mercurial中存储二进制文件,请阅读 https://www.mercurial-scm.org/wiki/BinaryFiles和http://kiln.stackexchange.com/questions/1074/why-is-it-bad-to-store-binary-files-in-mercurial
在我们的例子中,我们使用Dropbox处理二进制文件。它允许您保留文件的历史记录并在团队成员之间同步文件夹。如果您不需要保留文件历史记录,则可以使用rsync保持二进制文件同步。