Skip to content

tereka/scalar

 
 

Repository files navigation

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.

About

Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 92.7%
  • Shell 3.5%
  • Objective-C 2.3%
  • Other 1.5%