克隆后回购已损坏

时间:2019-02-11 12:33:34

标签: git azure-devops bitbucket git-lfs

我们在bitbucket中有一堆仓库。我们计划迁移到Azure Devops。当您使用常规git客户端在本地克隆存储库时,它运行良好,直到尝试签出另一个分支,然后它才会抱怨:

Checking out files: 100% (3149/3149), done.
Downloading samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (32 KB)
Error downloading object: samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (a94f8a8): Smudge error: Error downloading samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (a94f8a8553caea8430dd4ca3cc01d4e318d19828f74cb65453ffb7f5d9e2f44d): [a94f8a8553caea8430dd4ca3cc01d4e318d19828f74cb65453ffb7f5d9e2f44d] LFS object not found: [404] LFS object not found

错误记录到C:\ uork \ xxx.git \ lfs \ logs \ 20190202T091631.1131179.log

$ git-lfs.exe filter-process
Error downloading object: samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (a94f8a8): Smudge error: Error downloading samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (a94f8a8553caea8430dd4ca3cc01d4e318d19828f74cb65453ffb7f5d9e2f44d): batch request: git@bitbucket.org: Permission denied (publickey).: exit status 255

exit status 255
git@bitbucket.org: Permission denied (publickey).
github.com/git-lfs/git-lfs/errors.newWrappedError
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:170
github.com/git-lfs/git-lfs/errors.Wrap
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/errors.go:74
github.com/git-lfs/git-lfs/lfsapi.(*Client).NewRequest
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/lfsapi/client.go:39
github.com/git-lfs/git-lfs/tq.(*tqClient).Batch
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/api.go:60
github.com/git-lfs/git-lfs/tq.Batch
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/api.go:44
github.com/git-lfs/git-lfs/tq.(*TransferQueue).enqueueAndCollectRetriesFor
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/transfer_queue.go:432
github.com/git-lfs/git-lfs/tq.(*TransferQueue).collectBatches.func1
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/transfer_queue.go:354
runtime.goexit
        C:/Go/src/runtime/asm_amd64.s:2197
batch request
github.com/git-lfs/git-lfs/errors.newWrappedError
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:170
github.com/git-lfs/git-lfs/errors.Wrap
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/errors.go:74
github.com/git-lfs/git-lfs/tq.(*tqClient).Batch
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/api.go:62
github.com/git-lfs/git-lfs/tq.Batch
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/api.go:44
github.com/git-lfs/git-lfs/tq.(*TransferQueue).enqueueAndCollectRetriesFor
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/transfer_queue.go:432
github.com/git-lfs/git-lfs/tq.(*TransferQueue).collectBatches.func1
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/tq/transfer_queue.go:354
runtime.goexit
        C:/Go/src/runtime/asm_amd64.s:2197
Error downloading samples/ReactNativeSignalR/SignalRChat/wwwroot/favicon.ico (a94f8a8553caea8430dd4ca3cc01d4e318d19828f74cb65453ffb7f5d9e2f44d)
github.com/git-lfs/git-lfs/errors.newWrappedError
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:170
github.com/git-lfs/git-lfs/errors.Wrapf
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/errors.go:85
github.com/git-lfs/git-lfs/lfs.(*GitFilter).downloadFile
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/lfs/gitfilter_smudge.go:98
github.com/git-lfs/git-lfs/lfs.(*GitFilter).Smudge
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/lfs/gitfilter_smudge.go:59
github.com/git-lfs/git-lfs/commands.smudge
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/command_smudge.go:127
github.com/git-lfs/git-lfs/commands.filterCommand
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/command_filter_process.go:118
github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).execute
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/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:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:551
github.com/git-lfs/git-lfs/commands.Run
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/run.go:77
main.main
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/git-lfs.go:35
runtime.main
        C:/Go/src/runtime/proc.go:185
runtime.goexit
        C:/Go/src/runtime/asm_amd64.s:2197
Smudge error
github.com/git-lfs/git-lfs/errors.newWrappedError
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:170
github.com/git-lfs/git-lfs/errors.NewSmudgeError
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:256
github.com/git-lfs/git-lfs/lfs.(*GitFilter).Smudge
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/lfs/gitfilter_smudge.go:68
github.com/git-lfs/git-lfs/commands.smudge
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/command_smudge.go:127
github.com/git-lfs/git-lfs/commands.filterCommand
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/command_filter_process.go:118
github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).execute
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/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:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:551
github.com/git-lfs/git-lfs/commands.Run
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/commands/run.go:77
main.main
        C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/git-lfs.go:35
runtime.main
        C:/Go/src/runtime/proc.go:185
runtime.goexit
        C:/Go/src/runtime/asm_amd64.s:2197

Current time in UTC:
2019-02-11 12:26:57

ENV:
LocalWorkingDir=C:\uork\repodir
LocalGitDir=C:\uork\repodir\.git
LocalGitStorageDir=C:\uork\repodir\.git
LocalMediaDir=C:\uork\repodir\.git\lfs\objects
LocalReferenceDir=
TempDir=C:\uork\repodir\.git\lfs\tmp
ConcurrentTransfers=3
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
LfsStorageDir=C:\uork\repodir\.git\lfs
AccessDownload=none
AccessUpload=none
DownloadTransfers=basic
UploadTransfers=basic
GIT_DIR=C:/uork/repodir/.git
GIT_EXEC_PATH=C:/Program Files/Git/mingw64/libexec/git-core

Client IP addresses:
fe80::e7:bc8a:3fc4:ba23 10.120.23.118
fe80::80d6:68be:2b9c:37ef 10.0.0.4
fe80::8c36:6859:bb49:4ec1 172.22.152.113
fe80::c969:3d3e:900:3ab9 172.31.192.1

如果我将构建后生成的容器中的文件之一分类,我将得到:

cat xxx.png
version https://git-lfs.github.com/spec/v1
oid sha256:9875270489d0c222f5d6b8a334f5f54fc9faf7aa0a9bd709a2d23a7b8412735b
size 4975

如果我将其替换为新文件(通过UI手动上传文件)。我得到正常输出:

cat xxx.png
�PNG

IHDR  J      �7{�   s��O�   PLTE�������ڹ�������ڷ�������
omited 

如果我使用HTTP pull,它不会引发这些错误,但是会提示我再次输入凭据,这是ssh auth的另一个错误:

git lfs fetch --all
fetch: 121 object(s) found, done
fetch: Fetching all references...
batch request: git@bitbucket.org: Permission denied (publickey).: exit status 255
batch request: git@bitbucket.org: Permission denied (publickey).: exit status 255
error: failed to fetch some objects from 'https://bitbucket.org/xxx/yyy.git/info/lfs'

此外,不确定此错误来自何处:

C:/Users/ttaylorr/go/src/github.com/git-lfs/git-lfs/src/github.com/git-lfs/git-lfs/errors/types.go:170

此路径不在我的工作站上。

编辑:使用SourceTree签出时,一切似乎工作正常。但是在上传到Azure DevOps之后,这些错误再次出现。我尝试使用git remote add手动上传并从Azure DevOps UI导入。没什么

编辑:在重新结帐时,我得到了:

Encountered 1 file(s) that should have been pointers, but weren't:
        src/xxx/wwwroot/favicon.ico

似乎与之相关:
https://github.com/git-lfs/git-lfs/issues/904
https://github.com/git-lfs/git-lfs/issues/3289

2 个答案:

答案 0 :(得分:1)

似乎与当前不支持 基于SSH的LFS 的Azure DevOps服务有关。

请尝试使用 HTTPS 连接到具有Git LFS跟踪文件的存储库。

有关更多信息,请参阅此link

  

Azure DevOps Services当前不支持通过SSH的LFS。使用HTTPS连接到具有Git LFS跟踪文件的存储库。

答案 1 :(得分:0)

对我来说,答案是用https做一个git克隆,然后做git lfs fetch && git lfs checkout。然后将回购推送到ADO即可,但是我还需要启用checkout files from lfs