Scalar is a C# application that manages large Git repositories.
Run scalar register
in an existing Git repo to enable recommended config
settings and start background maintenance.
If your repo is hosted on a service that supports the
GVFS Protocol,
such as Azure Repos, then scalar clone <url>
will create a local enlistment with
abilities like on-demand object retrieval, background maintenance tasks, and
automatically sets Git config values and hooks that enable performance enhancements.
Scalar also assists in setting up sparse enlistments.
See the documentation for more details.
To install Scalar on macOS,
download the Installers_macOS_Release.zip
from the releases page.
Extract the Installers_macOS_Release
folder, cd
into it, and run ./InstallScalar.sh
in a Terminal window.
The script may prompt for your password as it installs the following components:
- Git (with custom patches)
- Git Credential Manager Core
- Scalar
- Watchman, unless you use the
--no-watchman
argument.
To install Scalar on Windows,
download the Installers_Windows_Release.zip
from the releases page.
Extract the Installers_Windows_Release
folder, open it in a command prompt, and
run InstallScalar.bat
. This will install the following components:
- Git for Windows (with custom patches)
- Scalar
- Watchman, if you use the
--watchman
argument.
If you want to get a feel for an initial workflow with a test project, here are some commands that clone our test repo and initialize some of the sparse content.
(Run these commands in Mac OSX Terminal or in Git Bash on Windows.)
$ scalar clone https://dev.azure.com/gvfs/ci/_git/ForTests
Clone parameters:
Repo URL: https://dev.azure.com/gvfs/ci/_git/ForTests
Branch: Default
Cache Server: Default
Local Cache: C:\.scalarCache
Destination: C:\_git\ForTests
FullClone: False
Authenticating...Succeeded
Querying remote for config...Succeeded
Using cache server: None (https://dev.azure.com/gvfs/ci/_git/ForTests)
Cloning...Succeeded
Fetching commits and trees from origin (no cache server)...Succeeded
Configuring Watchman...Succeeded.
Validating repo...Succeeded
$ cd ForTests/src
$ ls
AuthoringTests.md GvFlt_EULA.md GVFS.sln License.md nuget.config Protocol.md Readme.md Settings.StyleCop
$ git sparse-checkout set GVFS/GVFS.Common GVFS/GVFS.UnitTests GitHooksLoader
$ ls
AuthoringTests.md GitHooksLoader/ GvFlt_EULA.md GVFS/ GVFS.sln License.md nuget.config Protocol.md Readme.md Settings.StyleCop
$ ls GVFS
GVFS.Common/ GVFS.UnitTests/ LibGit2Sharp.NativeBinaries.props ProjectedFSLib.NativeBinaries.props
$ git sparse-checkout set GVFS/GVFS GVFS/GVFS.Common GVFS/GVFS.UnitTests GitHooksLoader
$ ls GVFS
GVFS/ GVFS.Common/ GVFS.UnitTests/ LibGit2Sharp.NativeBinaries.props ProjectedFSLib.NativeBinaries.props
The Scalar source code in this repo is available under the MIT license. See License.md.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.