[go: up one dir, main page]

Skip to content

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 🤖