1

我正在尝试将现有项目导入 Mercurial。该项目有点超过5GB。

当我尝试执行 hg push 时,总是会收到关于缓冲区空间不足的错误。

有谁知道进行初始提交的好方法?

4

3 回答 3

1

如果您不依赖于使用 Mercurial,那么另一种可能性是使用boar。它不是像 Mercurial 那样的 DVCS,而是您有一个中央存储库,您可以在其中存储数据,并“签出”文件的版本 - 与 Subversion 的方式大致相同。

重要的部分是它是为存储大型二进制文件而编写的。

我没有使用过它,所以我无法评论它的工作有多好,或者它有多稳定,但它是一个可能的替代方案,可能很适合您的需求。

于 2013-01-31T14:27:04.587 回答
0

假设您确实需要将这么大的提交放入 Mercurial,我猜您提交的大小主要是由于少数 biiiig 文件,而不是几百万个小文件。在这种情况下,您可以调查Large Files Extension,它应该适合您的需要。当你添加一个大文件时,它是通过校验和而不是内容来跟踪的,因此 Mercurial 本身跟踪的内容相对较小。该扩展将为您处理版本。

但是,正如 Alex Stuckey 所提到的,您通常不应该提交诸如编译后的二进制文件(目标代码、生成的可执行文件……)之类的东西,这是您进行如此大提交的最可能原因。您最好创建一个像样的.hgignore文件(删除通常的可疑文件 - *.o, *.pdb, 不管...),这将有助于避免将来意外添加类似的文件。我有一个标准.hgignore,它作为第一次提交被放入几乎所有的存储库中,并且对我很有帮助。

于 2013-01-30T16:38:35.627 回答
0

有关为什么不鼓励在 mercurial 中存储二进制文件的简要说明,请阅读 https://www.mercurial-scm.org/wiki/BinaryFileshttp://kiln.stackexchange.com/questions/1074/why-is-it -bad-to-store-binary-files-in-mercurial

在我们的例子中,我们使用 Dropbox 处理二进制文件。它允许您保留文件的历史记录并在团队成员之间同步文件夹。如果您不需要保留文件的历史记录,您可以使用 rsync 来保持二进制文件的同步。

于 2013-01-30T19:24:59.090 回答