diff options
author | Stan Hu <stanhu@gmail.com> | 2020-12-10 18:16:51 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2020-12-11 18:47:15 +0300 |
commit | 807702478431523c2fdb975cfba13c63969390c0 (patch) | |
tree | 013a23247178c8efbdbbfd99fe0ce9f2caa1726a /proto/repository-service.proto | |
parent | b0e14676f3fafab9a8aca7edd28c864ddf131102 (diff) |
Support cloning with an object pool in CreateFork
This is needed to support fast forking. When an object pool is provided,
forking can cheap in terms of disk space and time since the clone only
needs to fetch the references.
The `git clone` can take in a `--reference <repository>` flag and will
output an alternates file with absolute paths. To maintain the use of
relative paths, after the fork is successful we recreate the alternates
file.
Relates to https://gitlab.com/gitlab-org/gitlab/-/issues/24523
Diffstat (limited to 'proto/repository-service.proto')
-rw-r--r-- | proto/repository-service.proto | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/proto/repository-service.proto b/proto/repository-service.proto index 24c3ea7fa..4650a79dc 100644 --- a/proto/repository-service.proto +++ b/proto/repository-service.proto @@ -397,6 +397,10 @@ message FindMergeBaseResponse { message CreateForkRequest { Repository repository = 1 [(target_repository)=true]; Repository source_repository = 2; + // Clone using an object pool to reduce object duplication. + // This pool repository must reside on the same storage shard + // as the target repository. + ObjectPool pool = 3 [(additional_repository)=true]; } message CreateForkResponse {} |