]> source.dussan.org Git - gitea.git/commit
Add LFS Migration and Mirror (#14726)
authorKN4CK3R <KN4CK3R@users.noreply.github.com>
Thu, 8 Apr 2021 22:25:57 +0000 (00:25 +0200)
committerGitHub <noreply@github.com>
Thu, 8 Apr 2021 22:25:57 +0000 (18:25 -0400)
commitc03e488e14fdaf1c0056952f40c5fc8124719a30
tree22338add91196fad9f40f9a74033525ad8f591eb
parentf544414a232c148d4baf2e9d807f6cbffed67928
Add LFS Migration and Mirror (#14726)

* Implemented LFS client.

* Implemented scanning for pointer files.

* Implemented downloading of lfs files.

* Moved model-dependent code into services.

* Removed models dependency. Added TryReadPointerFromBuffer.

* Migrated code from service to module.

* Centralised storage creation.

* Removed dependency from models.

* Moved ContentStore into modules.

* Share structs between server and client.

* Moved method to services.

* Implemented lfs download on clone.

* Implemented LFS sync on clone and mirror update.

* Added form fields.

* Updated templates.

* Fixed condition.

* Use alternate endpoint.

* Added missing methods.

* Fixed typo and make linter happy.

* Detached pointer parser from gogit dependency.

* Fixed TestGetLFSRange test.

* Added context to support cancellation.

* Use ReadFull to probably read more data.

* Removed duplicated code from models.

* Moved scan implementation into pointer_scanner_nogogit.

* Changed method name.

* Added comments.

* Added more/specific log/error messages.

* Embedded lfs.Pointer into models.LFSMetaObject.

* Moved code from models to module.

* Moved code from models to module.

* Moved code from models to module.

* Reduced pointer usage.

* Embedded type.

* Use promoted fields.

* Fixed unexpected eof.

* Added unit tests.

* Implemented migration of local file paths.

* Show an error on invalid LFS endpoints.

* Hide settings if not used.

* Added LFS info to mirror struct.

* Fixed comment.

* Check LFS endpoint.

* Manage LFS settings from mirror page.

* Fixed selector.

* Adjusted selector.

* Added more tests.

* Added local filesystem migration test.

* Fixed typo.

* Reset settings.

* Added special windows path handling.

* Added unit test for HTTPClient.

* Added unit test for BasicTransferAdapter.

* Moved into util package.

* Test if LFS endpoint is allowed.

* Added support for git://

* Just use a static placeholder as the displayed url may be invalid.

* Reverted to original code.

* Added "Advanced Settings".

* Updated wording.

* Added discovery info link.

* Implemented suggestion.

* Fixed missing format parameter.

* Added Pointer.IsValid().

* Always remove model on error.

* Added suggestions.

* Use channel instead of array.

* Update routers/repo/migrate.go

* fmt

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: zeripath <art27@cantab.net>
77 files changed:
cmd/serv.go
integrations/api_repo_lfs_migrate_test.go [new file with mode: 0644]
integrations/git_test.go
integrations/gitea-repositories-meta/migration/lfs-test.git/HEAD [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/config [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/description [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/hooks/post-checkout [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/hooks/post-commit [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/hooks/post-merge [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/hooks/pre-push [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/index [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/lfs/objects/d6/f1/d6f175817f886ec6fbbc1515326465fa96c3bfd54a4ea06cfd6dbbd8340e0152 [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/lfs/objects/fb/8f/fb8f7d8435968c4f82a726a92395be4d16f2f63116caf36c8ad35c60831ab041 [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/objects/54/6244003622c64b2fc3c2cd544d7a29882c8383 [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/objects/6a/6ccf5d874fec134ee712572cc03a0f2dd7afec [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/objects/a6/7134b8484c2abe9fa954e1fd83b39b271383ed [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/objects/b7/01ed6ffe410f0c3ac204b929ea47cfec6cef54 [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/objects/f2/07b74f55cd7f9e800b7550d587cbc488f6eaf1 [new file with mode: 0644]
integrations/gitea-repositories-meta/migration/lfs-test.git/refs/heads/master [new file with mode: 0644]
integrations/lfs_getobject_test.go
integrations/lfs_local_endpoint_test.go [new file with mode: 0644]
models/lfs.go
models/migrations/migrations.go
models/migrations/v178.go [new file with mode: 0644]
models/repo.go
models/repo_mirror.go
modules/lfs/client.go [new file with mode: 0644]
modules/lfs/client_test.go [new file with mode: 0644]
modules/lfs/content_store.go
modules/lfs/endpoint.go [new file with mode: 0644]
modules/lfs/endpoint_test.go [new file with mode: 0644]
modules/lfs/filesystem_client.go [new file with mode: 0644]
modules/lfs/http_client.go [new file with mode: 0644]
modules/lfs/http_client_test.go [new file with mode: 0644]
modules/lfs/locks.go [deleted file]
modules/lfs/pointer.go [new file with mode: 0644]
modules/lfs/pointer_scanner_gogit.go [new file with mode: 0644]
modules/lfs/pointer_scanner_nogogit.go [new file with mode: 0644]
modules/lfs/pointer_test.go [new file with mode: 0644]
modules/lfs/pointers.go [deleted file]
modules/lfs/server.go [deleted file]
modules/lfs/shared.go [new file with mode: 0644]
modules/lfs/transferadapter.go [new file with mode: 0644]
modules/lfs/transferadapter_test.go [new file with mode: 0644]
modules/migrations/base/options.go
modules/migrations/gitea_uploader.go
modules/migrations/migrate.go
modules/repofiles/update.go
modules/repofiles/upload.go
modules/repository/repo.go
modules/structs/repo.go
modules/util/path.go
modules/util/path_test.go [new file with mode: 0644]
options/locale/locale_en-US.ini
routers/api/v1/repo/migrate.go
routers/repo/download.go
routers/repo/lfs.go
routers/repo/migrate.go
routers/repo/setting.go
routers/repo/view.go
routers/routes/web.go
services/forms/repo_form.go
services/gitdiff/gitdiff.go
services/lfs/locks.go [new file with mode: 0644]
services/lfs/server.go [new file with mode: 0644]
services/mirror/mirror.go
services/mirror/mirror_test.go
services/pull/lfs.go
templates/repo/migrate/git.tmpl
templates/repo/migrate/gitea.tmpl
templates/repo/migrate/github.tmpl
templates/repo/migrate/gitlab.tmpl
templates/repo/migrate/gogs.tmpl
templates/repo/migrate/options.tmpl [new file with mode: 0644]
templates/repo/settings/options.tmpl
templates/swagger/v1_json.tmpl
web_src/js/features/migration.js