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

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

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

git init
git lfs install
git lfs track *.nnex

.git 属性:*.nnex filter=lfs diff=lfs merge=lfs -text

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

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

git lfs track: Listing 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)

这是 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 instead of git-lfs with some success, but someone else had a similar issuegit-annex 结合使用。错误报告中没有足够的详细信息来了解这是否仍然是 32 位系统上的问题。

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