You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/modules/lfs
Jason Song 09b56fc069
Distinguish LFS object errors to ignore missing objects during migration (#31702)
Fix #31137.

Replace #31623 #31697.

When migrating LFS objects, if there's any object that failed (like some
objects are losted, which is not really critical), Gitea will stop
migrating LFS immediately but treat the migration as successful.

This PR checks the error according to the [LFS api
doc](https://github.com/git-lfs/git-lfs/blob/main/docs/api/batch.md#successful-responses).

> LFS object error codes should match HTTP status codes where possible:
> 
> - 404 - The object does not exist on the server.
> - 409 - The specified hash algorithm disagrees with the server's
acceptable options.
> - 410 - The object was removed by the owner.
> - 422 - Validation error.

If the error is `404`, it's safe to ignore it and continue migration.
Otherwise, stop the migration and mark it as failed to ensure data
integrity of LFS objects.

And maybe we should also ignore others errors (maybe `410`? I'm not sure
what's the difference between "does not exist" and "removed by the
owner".), we can add it later when some users report that they have
failed to migrate LFS because of an error which should be ignored.
6 months ago
..
LICENSE Git LFS support v2 (#122) 8 years ago
client.go Implement FSFE REUSE for golang files (#21840) 2 years ago
client_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
content_store.go Use `crypto/sha256` (#29386) 11 months ago
endpoint.go escape filename when assemble URL (#22850) 2 years ago
endpoint_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
filesystem_client.go fix: close file in the Upload func (#30262) 10 months ago
http_client.go Distinguish LFS object errors to ignore missing objects during migration (#31702) 6 months ago
http_client_test.go Support legacy _links LFS batch responses (#31513) 7 months ago
pointer.go Use `crypto/sha256` (#29386) 11 months ago
pointer_scanner_gogit.go Implement FSFE REUSE for golang files (#21840) 2 years ago
pointer_scanner_nogogit.go Make sure git version&feature are always prepared (#30877) 9 months ago
pointer_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
shared.go Distinguish LFS object errors to ignore missing objects during migration (#31702) 6 months ago
transferadapter.go Fix #31185 try fix lfs download from bitbucket failed (#31201) 8 months ago
transferadapter_test.go Fix #31185 try fix lfs download from bitbucket failed (#31201) 8 months ago