Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer
Перейти к файлу
Derrick Stolee cbf6f828e2 GitHelpers: ignore whitespace lines
Signed-off-by: Derrick Stolee <stolee@gmail.com>
2020-03-23 16:18:40 -04:00
.azure-pipelines Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
.github/workflows Actions: increase stale timeout to 90 days 2020-01-06 10:49:49 -05:00
Scalar Merge pull request #339: CloneVerb: Fall back to partial clone 2020-03-03 10:35:54 -05:00
Scalar.Common Use WaitForSingleObject 2020-03-06 11:19:15 -05:00
Scalar.FunctionalTests GitHelpers: ignore whitespace lines 2020-03-23 16:18:40 -04:00
Scalar.Installer.Mac Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.Installer.Windows Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.MSBuild Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.Notifications.Mac Merge pull request #343: Move to .NET Core 3.1 (LTS) 2020-02-28 20:49:50 -05:00
Scalar.Service Windows: wait for processes started as user 2020-03-06 08:46:58 -05:00
Scalar.Service.UI Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.Signing Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.TestInfrastructure GitHelpers: ignore whitespace lines 2020-03-23 16:18:40 -04:00
Scalar.UnitTests Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scalar.Upgrader Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +00:00
Scripts Move to .NET Core 3.1 (LTS) 2020-02-28 16:22:27 +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 [REPLACE] Replace old name in all files 2019-08-10 12:41:55 -04:00
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 v2.26.0 2020-03-23 16:18:35 -04: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.