scalar: adjust documentation to the microsoft/git fork

Scalar in Microsoft's Git fork can do a little more than Scalar in
upstream Git: in Microsoft's Git, it supports the GVFS protocol so that
Scalar can clone from Azure DevOps.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin 2022-01-25 23:49:21 +01:00
Родитель 35399e2cd2
Коммит 3c9f0708fd
4 изменённых файлов: 68 добавлений и 23 удалений

Просмотреть файл

@ -18,8 +18,9 @@ Creating a new Scalar clone
--------------------------------------------------- ---------------------------------------------------
The `clone` verb creates a local enlistment of a remote repository using the The `clone` verb creates a local enlistment of a remote repository using the
partial clone feature available e.g. on GitHub. partial clone feature available e.g. on GitHub, or using the
[GVFS protocol](https://github.com/microsoft/VFSForGit/blob/HEAD/Protocol.md),
such as Azure Repos.
``` ```
scalar clone [options] <url> [<dir>] scalar clone [options] <url> [<dir>]
@ -68,11 +69,26 @@ in `<path>`.
These options allow a user to customize their initial enlistment. These options allow a user to customize their initial enlistment.
* `--full-clone`: If specified, do not initialize the sparse-checkout feature. * `--full-clone`: If specified, do not initialize the sparse-checkout feature.
All files will be present in your `src` directory. This uses a Git partial All files will be present in your `src` directory. This behaves very similar
clone: blobs are downloaded on demand. to a Git partial clone in that blobs are downloaded on demand. However, it
will use the GVFS protocol to download all Git objects.
* `--cache-server-url=<url>`: If specified, set the intended cache server to
the specified `<url>`. All object queries will use the GVFS protocol to this
`<url>` instead of the origin remote. If the remote supplies a list of
cache servers via the `<url>/gvfs/config` endpoint, then the `clone` command
will select a nearby cache server from that list.
* `--branch=<ref>`: Specify the branch to checkout after clone. * `--branch=<ref>`: Specify the branch to checkout after clone.
* `--local-cache-path=<path>`: Use this option to override the path for the
local Scalar cache. If not specified, then Scalar will select a default
path to share objects with your other enlistments. On Windows, this path
is a subdirectory of `<Volume>:\.scalarCache\`. On Mac, this path is a
subdirectory of `~/.scalarCache/`. The default cache path is recommended so
multiple enlistments of the same remote repository share objects on the
same device.
### Advanced Options ### Advanced Options
The options below are not intended for use by a typical user. These are The options below are not intended for use by a typical user. These are

Просмотреть файл

@ -28,10 +28,14 @@ these features for that repo (except partial clone) and start running suggested
maintenance in the background using maintenance in the background using
[the `git maintenance` feature](https://git-scm.com/docs/git-maintenance). [the `git maintenance` feature](https://git-scm.com/docs/git-maintenance).
Repos cloned with the `scalar clone` command use partial clone to significantly Repos cloned with the `scalar clone` command use partial clone or the
reduce the amount of data required to get started using a repository. By [GVFS protocol](https://github.com/microsoft/VFSForGit/blob/HEAD/Protocol.md)
delaying all blob downloads until they are required, Scalar allows you to work to significantly reduce the amount of data required to get started
with very large repositories quickly. using a repository. By delaying all blob downloads until they are required,
Scalar allows you to work with very large repositories quickly. The GVFS
protocol allows a network of _cache servers_ to serve objects with lower
latency and higher throughput. The cache servers also reduce load on the
central server.
Documentation Documentation
------------- -------------
@ -42,7 +46,7 @@ Documentation
* [Troubleshooting](troubleshooting.md): * [Troubleshooting](troubleshooting.md):
Collect diagnostic information or update custom settings. Includes Collect diagnostic information or update custom settings. Includes
`scalar diagnose`. `scalar diagnose` and `scalar cache-server`.
* [The Philosophy of Scalar](philosophy.md): Why does Scalar work the way * [The Philosophy of Scalar](philosophy.md): Why does Scalar work the way
it does, and how do we make decisions about its future? it does, and how do we make decisions about its future?

Просмотреть файл

@ -13,22 +13,27 @@ Scalar only to configure those new settings. In particular, we ported
features like background maintenance to Git to make Scalar simpler and features like background maintenance to Git to make Scalar simpler and
make Git more powerful. make Git more powerful.
Services such as GitHub support partial clone , a standard adopted by the Git Scalar ships inside [a custom version of Git][microsoft-git], but we are
project to download only part of the Git objects when cloning, and fetching working to make it available in other forks of Git. The only feature
further objects on demand. If your hosting service supports partial clone, then that is not intended to ever reach the standard Git client is Scalar's use
we absolutely recommend it as a way to greatly speed up your clone and fetch of [the GVFS Protocol][gvfs-protocol], which is essentially an older
times and to reduce how much disk space your Git repository requires. Scalar version of [Git's partial clone feature](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/)
will help with this! that was available first in Azure Repos. Services such as GitHub support
only partial clone instead of the GVFS protocol because that is the
standard adopted by the Git project. If your hosting service supports
partial clone, then we absolutely recommend it as a way to greatly speed
up your clone and fetch times and to reduce how much disk space your Git
repository requires. Scalar will help with this!
Most of the value of Scalar can be found in the core Git client. However, most If you don't use the GVFS Protocol, then most of the value of Scalar can
of the advanced features that really optimize Git's performance are off by be found in the core Git client. However, most of the advanced features
default for compatibility reasons. To really take advantage of Git's latest and that really optimize Git's performance are off by default for compatibility
greatest features, you either need to study the [`git config` reasons. To really take advantage of Git's latest and greatest features,
documentation](https://git-scm.com/docs/git-config) and regularly read [the Git you either need to study the [`git config` documentation](https://git-scm.com/docs/git-config)
release notes](https://github.com/git/git/tree/master/Documentation/RelNotes). and regularly read [the Git release notes](https://github.com/git/git/tree/master/Documentation/RelNotes).
Even if you do all that work and customize your Git settings on your machines, Even if you do all that work and customize your Git settings on your machines,
you likely will want to share those settings with other team members. Or, you you likely will want to share those settings with other team members.
can just use Scalar! Or, you can just use Scalar!
Using `scalar register` on an existing Git repository will give you these Using `scalar register` on an existing Git repository will give you these
benefits: benefits:

Просмотреть файл

@ -18,3 +18,23 @@ files for that repository. This includes:
As the `diagnose` command completes, it provides the path of the resulting As the `diagnose` command completes, it provides the path of the resulting
zip file. This zip can be attached to bug reports to make the analysis easier. zip file. This zip can be attached to bug reports to make the analysis easier.
Modifying Configuration Values
------------------------------
The Scalar-specific configuration is only available for repos using the
GVFS protocol.
### Cache Server URL
When using an enlistment cloned with `scalar clone` and the GVFS protocol,
you will have a value called the cache server URL. Cache servers are a feature
of the GVFS protocol to provide low-latency access to the on-demand object
requests. This modifies the `gvfs.cache-server` setting in your local Git config
file.
Run `scalar cache-server --get` to see the current cache server.
Run `scalar cache-server --list` to see the available cache server URLs.
Run `scalar cache-server --set=<url>` to set your cache server to `<url>`.