Scalar Integration
Release notes
Problem to solve
Ability to transition very large code base from Perforce to Git.
Intended users
Developers, engineers, architects
User experience goal
Proposal
Scalar will allow users to migrate large repos.
Further details
The scale problems with Git we have for this large code base with a large development team are very similar to the problems that faced Microsoft as it moved from their perforce solution to Git.
From the Scalar info - https://thenewstack.io/microsofts-open-source-scalar-brings-large-repository-support-for-git/
“For supporting large engineering teams within Microsoft, we require some features not available in git. Most of these revolve around reducing data transfer, which Azure Repos (part of Azure DevOps) solves with the GVFS protocol. The ‘scalar clone‘ command creates a new local repository and uses the GVFS protocol to download a smaller set of objects than the full git history, including every version of every file in history; these versions can be downloaded on-demand. It also initializes the repository with a sparse-checkout definition so not all files are populated at the start. The combination of sparse-checkout and on-demand downloads allow users to get started with extremely large repositories,” wrote Stolee. Jordi Mon, a senior product marketing manager at GitLab, seemed cautiously optimistic in his evaluation of Scalar’s release, recalling the history of another attempt to solve the problems presented by large repositories with Git Large File Storage (LFS). Developed originally by people from Atlassian and GitHub, among others, the solution ultimately was found to be not easy to integrate, requiring its own commands, and capable of considerably slowing down performance, he said.
Permissions and Security
Documentation
https://devblogs.microsoft.com/devops/introducing-scalar/
- Add all known Documentation Requirements in this section. See https://docs.gitlab.com/ee/development/documentation/feature-change-workflow.html#documentation-requirements
- If this feature requires changing permissions, update the permissions document. See https://docs.gitlab.com/ee/user/permissions.html -->