git-lfs:致命:无法处理这么大的文件(4.3G)

时间:2015-12-12 20:48:55

标签: git git-lfs

使用git-lfs / 1.1.0(GitHub; linux 386;转1.5.1),文件大小4.3G。

git init
git lfs install
git lfs track *.nnex

.gitattributes:*.nnex filter=lfs diff=lfs merge=lfs -text

git add evernote-backup.nnexfatal: Cannot handle files this big

git lfs ls-filesGit can't resolve ref: "HEAD"

git lfs trackListing tracked paths evernote-backup.nnex .gitattributes)

git lfs env

WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.1.0 (GitHub; linux 386; go 1.5.1)
git version 2.1.4

LocalWorkingDir=/home/vitaly
LocalGitDir=/home/vitaly/.git
LocalGitStorageDir=/home/vitaly/.git
LocalMediaDir=/home/vitaly/.git/lfs/objects
TempDir=/home/vitaly/.git/lfs/tmp
ConcurrentTransfers=3
BatchTransfer=true
git config filter.lfs.smudge = "git-lfs smudge %f"
git config filter.lfs.clean = "git-lfs clean %f"

我收到以下错误:

git-lfs: fatal: Cannot handle files this big (4.3G)

1 个答案:

答案 0 :(得分:4)

这是i386上的32位寻址问题,而Git和git-lfs根本无法处理大于4 GB的文件。 32位无符号整数的最大值为4,294,967,295,大约为4 GB。

我们可以在git-compat-util.h中的Git源代码中查看此错误的位置:

744 static inline size_t xsize_t(off_t len)
745 {
746     if (len > (size_t) len)
747         die("Cannot handle files this big");
748     return (size_t)len;
749 }

我不太了解git-lfs如何在内部工作以了解这是否可以解决。

如果使用的是64位(x86_64)系统而不是32位(i386)系统,那么您可以选择使用该系统来解决您的问题。或者,您可以使用git-annex代替git-lfs取得一些成功,但someone else had a similar issue使用git-annex。错误报告中没有足够的细节来了解这是否仍然是32位系统的问题。

不幸的是,您面临着32位硬件的常见限制,并且您在尝试处理这些系统上大于4 GB的文件时会遇到许多问题。这是升级时间!