Skip to content
Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer
C# Shell Objective-C Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.azure-pipelines Move to .NET Core 3.1 (LTS) Feb 28, 2020
.github/workflows Actions: increase stale timeout to 90 days Jan 6, 2020
Scalar.Common Mac: fully root path to '/usr/local' for hook location Mar 28, 2020
Scalar.FunctionalTests Fix GIT_COMMITTER_DATE to keep tests consistent Mar 23, 2020
Scalar.Installer.Mac Mac: chown "Cellar" before installing Watchman Mar 28, 2020
Scalar.Installer.Windows Move to .NET Core 3.1 (LTS) Feb 28, 2020
Scalar.MSBuild Move to .NET Core 3.1 (LTS) Feb 28, 2020
Scalar.Notifications.Mac Merge pull request #343: Move to .NET Core 3.1 (LTS) Feb 29, 2020
Scalar.Service.UI Move to .NET Core 3.1 (LTS) Feb 28, 2020
Scalar.Service Windows: wait for processes started as user Mar 6, 2020
Scalar.Signing Move to .NET Core 3.1 (LTS) Feb 28, 2020
Scalar.TestInfrastructure GitHelpers: ignore whitespace lines Mar 23, 2020
Scalar.UnitTests Merge pull request #349: Update Git to v2.26.0 Mar 24, 2020
Scalar.Upgrader Move to .NET Core 3.1 (LTS) Feb 28, 2020
Scalar Docs: update fetch step about multiple remotes: Mar 17, 2020
Scripts Move to .NET Core 3.1 (LTS) Feb 28, 2020
docs Docs: update fetch step about multiple remotes: Mar 17, 2020
.editorconfig Standardize on LF thoughout the repository. Aug 13, 2019
.gitattributes diff: use csharp driver for better function headers in .cs files Sep 16, 2019
.gitignore Update gitignore for JetBrains IDEs Nov 7, 2019
.vsconfig [REPLACE] Replace old name in all files Aug 10, 2019
AuthoringTests.md Remove all vestiges of the mount process from C# code Jan 28, 2020
CONTRIBUTING.md Remove all vestiges of the mount process from C# code Jan 28, 2020
Dependencies.props Shell out to nuget.exe to verify packages Jan 30, 2020
Directory.Build.props Update Git to v2.26.0 Mar 23, 2020
Directory.Build.targets Add signing and notarization of macOS/Windows releases Dec 16, 2019
License.md Standardize on LF thoughout the repository. Aug 13, 2019
Protocol.md Rename cleanup: Old "VFS4G" now "Scalar" Aug 12, 2019
Readme.md Feedback from kewillford Jan 15, 2020
SECURITY.md Improve legal docs in preparation for public release Jan 8, 2020
Scalar.ruleset Add ruleset file Nov 7, 2019
Scalar.sln Add signing and notarization of macOS/Windows releases Dec 16, 2019
Signing.targets Fix Windows signing Jan 7, 2020
global.json Upgrade common/pre build items and targets Nov 7, 2019
nuget.config Migrate to Azure Artifacts Nov 21, 2019

Readme.md

Scalar

Build Status

What is Scalar?

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.

Table of Contents

Installing on macOS

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:

Installing on Windows

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:

Quick start

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

License

The Scalar source code in this repo is available under the MIT license. See License.md.


Code of Conduct

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.

You can’t perform that action at this time.