Fail to clone repository with git lfs

匿名 (未验证) 提交于 2019-12-03 01:18:02

问题:

My repo uses git lfs. For a fresh clone, I ran:

git lfs install git clone https://example.com/repo.git 

The clone gets to the point where it starts downloading lfs files, gets to some file and then fails. The file at which it fails is different each time I attempt to clone. Very occasionally it succeeds.

Here is the output:

Cloning into 'repo'... remote: Counting objects: 35699, done. remote: Compressing objects: 100% (17678/17678), done. remote: Total 35699 (delta 15603), reused 35553 (delta 15545) Receiving objects: 100% (35699/35699), 231.45 MiB | 11.12 MiB/s, done. Resolving deltas: 100% (15603/15603), done. Downloading big_file.big (157.39 KB) ... Downloading some_other_big_file.big (18.84 KB) Error downloading object: some_other_big_file.big  Errors logged to blah.log Use `git lfs logs last` to view the log. error: external filter 'git-lfs filter-process' failed fatal: some_other_big_file.big: smudge filter lfs failed warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD' 

The lfs logs say:

Error downloading object: some_other_big_file.big  Smudge error: Error buffering media file: cannot write data to tempfile "blah.tmp": LFS: unexpected EOF: github.com/git-lfs/git-lfs/errors.newWrappedError         C:/Go/src/github.com/git-lfs/git-lfs/errors/types.go:166 github.com/git-lfs/git-lfs/errors.NewSmudgeError         C:/Go/src/github.com/git-lfs/git-lfs/errors/types.go:252 github.com/git-lfs/git-lfs/lfs.PointerSmudge         C:/Go/src/github.com/git-lfs/git-lfs/lfs/pointer_smudge.go:70 github.com/git-lfs/git-lfs/lfs.(*Pointer).Smudge         C:/Go/src/github.com/git-lfs/git-lfs/lfs/pointer.go:65 github.com/git-lfs/git-lfs/commands.smudge         C:/Go/src/github.com/git-lfs/git-lfs/commands/command_smudge.go:84 github.com/git-lfs/git-lfs/commands.filterCommand         C:/Go/src/github.com/git-lfs/git-lfs/commands/command_filter_process.go:65 github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).execute         C:/Go/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:477 github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).Execute         C:/Go/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:551 github.com/git-lfs/git-lfs/commands.Run         C:/Go/src/github.com/git-lfs/git-lfs/commands/run.go:66 main.main         C:/Go/src/github.com/git-lfs/git-lfs/git-lfs.go:33 runtime.main         C:/Go/src/runtime/proc.go:183 runtime.goexit         C:/Go/src/runtime/asm_amd64.s:2086 

If I try git lfs pull at this point, everything works fine.

Any idea what could be causing this failure to download the lfs files?

回答1:

I had the similar issue and there was already a bug reported with git lfs. While the bug was being resolved, this workaround helped me, where you skip the filter where it was failing.

// Skip smudge - We'll download binary files later in a faster batch git lfs install --skip-smudge  // Do git clone here git clone ...  // Fetch all the binary files in the new clone git lfs pull  // Reinstate smudge git lfs install --force 

Credits: @strich



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!