Unshallow project clone in stages
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
MR: Pending
Description
This is a followup to this discussion here: !194906 (comment 2584517972)
Currently we unshallow
the entire cloned repo in a single git fetch --unshallow
process.
The unshallow is a 0-1 operation and the remaining git history becomes available only after the process completes. This can take some time for larger repos, i.e for the Gitlab monolith it takes ~30 minutes to do a full unshallow.
We want to improve this process and unshallow repos iteratively so that users can have access to the immediate git history sooner.
We can do this in several ways:
Approach 1
- Git clone with depth of 1
- Unshallow upto depth 50
- Unshallow upto depth 500
- Unshallow remaining
Approach 2
- Git clone with depth of 1
- Unshalllow upto 1 day prior
- Unshalllow upto 1 week prior
- Unshalllow upto 1 month prior
- Unshallow remaining
Acceptance criteria
-
Update shallow clone depth to 1 -
Breakdown unshallow process into several stages -
Logs added for each stage
References
Edited by 🤖 GitLab Bot 🤖