Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer
Перейти к файлу
Derrick Stolee 24d56dbd35 Make InvalidRepoException exit normally
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
2020-02-20 12:40:18 -05:00
.azure-pipelines Publish 'Installers' nupkgs as an Artifact 2020-01-17 11:31:05 +00:00
.github/workflows Actions: increase stale timeout to 90 days 2020-01-06 10:49:49 -05:00
Scalar Make InvalidRepoException exit normally 2020-02-20 12:40:18 -05:00
Scalar.Common Make InvalidRepoException exit normally 2020-02-20 12:40:18 -05:00
Scalar.FunctionalTests RunVerb: fall back to timestamp log if service log is busy 2020-02-14 11:49:29 -05:00
Scalar.Installer.Mac Remove all vestiges of the mount process from C# code 2020-01-28 14:24:49 +00:00
Scalar.Installer.Windows Target Windows 10 64-bit specifically 2020-01-30 20:04:29 +00:00
Scalar.MSBuild Git: remove exact version match 2020-02-03 21:17:25 -05:00
Scalar.Notifications.Mac scalar: allow full build without publish args 2019-11-21 11:47:40 +00:00
Scalar.Service Pause maintenance between repos during same task 2020-01-22 18:41:10 -05:00
Scalar.Service.UI Target Windows 10 64-bit specifically 2020-01-30 20:04:29 +00:00
Scalar.Signing Fix Windows signing 2020-01-07 15:45:21 +00:00
Scalar.TestInfrastructure Merge branch 'master' into refactor_reg_format 2019-11-07 12:23:26 -08:00
Scalar.UnitTests Make InvalidRepoException exit normally 2020-02-20 12:40:18 -05:00
Scalar.Upgrader Remove all vestiges of the mount process from C# code 2020-01-28 14:24:49 +00:00
Scripts Target Windows 10 64-bit specifically 2020-01-30 20:04:29 +00:00
docs FAQ: Why use C#? 2020-02-10 08:37:43 -05:00
.editorconfig Standardize on LF thoughout the repository. 2019-08-12 20:07:41 -04:00
.gitattributes diff: use csharp driver for better function headers in .cs files 2019-09-16 08:19:34 -04:00
.gitignore Update gitignore for JetBrains IDEs 2019-11-07 16:05:45 +00:00
.vsconfig
AuthoringTests.md Remove all vestiges of the mount process from C# code 2020-01-28 14:24:49 +00:00
CONTRIBUTING.md Remove all vestiges of the mount process from C# code 2020-01-28 14:24:49 +00:00
Dependencies.props Shell out to nuget.exe to verify packages 2020-01-30 20:04:29 +00:00
Directory.Build.props Update Git to include disabled fetch-pack 2020-02-04 21:01:29 -05:00
Directory.Build.targets Add signing and notarization of macOS/Windows releases 2019-12-16 13:49:38 +00:00
License.md Standardize on LF thoughout the repository. 2019-08-12 20:07:41 -04:00
Protocol.md Rename cleanup: Old "VFS4G" now "Scalar" 2019-08-11 21:37:38 -04:00
Readme.md Feedback from kewillford 2020-01-15 16:05:03 -05:00
SECURITY.md Improve legal docs in preparation for public release 2020-01-08 12:58:46 -05:00
Scalar.ruleset Add ruleset file 2019-11-07 16:05:44 +00:00
Scalar.sln Add signing and notarization of macOS/Windows releases 2019-12-16 13:49:38 +00:00
Signing.targets Fix Windows signing 2020-01-07 15:45:21 +00:00
global.json Upgrade common/pre build items and targets 2019-11-07 16:05:34 +00:00
nuget.config Migrate to Azure Artifacts 2019-11-21 12:57:47 -05:00

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.