git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
22583fe046e550d0d4b71047339008b78051e168 blob 5545 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
 
scalar(1)
=========

NAME
----
scalar - an opinionated repository management tool

SYNOPSIS
--------
[verse]
scalar clone [--single-branch] [--branch <main-branch>] [--full-clone] <url> [<enlistment>]
scalar list
scalar register [<enlistment>]
scalar unregister [<enlistment>]
scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]
scalar reconfigure [ --all | <enlistment> ]
scalar diagnose [<enlistment>]
scalar delete <enlistment>

DESCRIPTION
-----------

Scalar is an opinionated repository management tool. By creating new
repositories or registering existing repositories with Scalar, your Git
experience will speed up. Scalar sets advanced Git config settings,
maintains your repositories in the background, and helps reduce data sent
across the network.

An important Scalar concept is the enlistment: this is the top-level directory
of the project. It usually contains the subdirectory `src/` which is a Git
worktree. This encourages the separation between tracked files (inside `src/`)
and untracked files, such as build artifacts (outside `src/`). When registering
an existing Git worktree with Scalar whose name is not `src`, the enlistment
will be identical to the worktree.

The `scalar` command implements various subcommands, and different options
depending on the subcommand. With the exception of `clone`, `list` and
`reconfigure --all`, all subcommands expect to be run in an enlistment.

COMMANDS
--------

Clone
~~~~~

clone [<options>] <url> [<enlistment>]::
	Clones the specified repository, similar to linkgit:git-clone[1]. By
	default, only commit and tree objects are cloned. Once finished, the
	worktree is located at `<enlistment>/src`.
+
The sparse-checkout feature is enabled (except when run with `--full-clone`)
and the only files present are those in the top-level directory. Use
`git sparse-checkout set` to expand the set of directories you want to see,
or `git sparse-checkout disable` to expand to all files (see
linkgit:git-sparse-checkout[1] for more details). You can explore the
subdirectories outside your sparse-checkout by using `git ls-tree
HEAD[:<directory>]`.

-b <name>::
--branch <name>::
	Instead of checking out the branch pointed to by the cloned
	repository's HEAD, check out the `<name>` branch instead.

--[no-]single-branch::
	Clone only the history leading to the tip of a single branch, either
	specified by the `--branch` option or the primary branch remote's
	`HEAD` points at.
+
Further fetches into the resulting repository will only update the
remote-tracking branch for the branch this option was used for the initial
cloning. If the HEAD at the remote did not point at any branch when
`--single-branch` clone was made, no remote-tracking branch is created.

--[no-]full-clone::
	A sparse-checkout is initialized by default. This behavior can be
	turned off via `--full-clone`.

List
~~~~

list::
	List enlistments that are currently registered by Scalar. This
	subcommand does not need to be run inside an enlistment.

Register
~~~~~~~~

register [<enlistment>]::
	Adds the enlistment's repository to the list of registered repositories
	and starts background maintenance. If `<enlistment>` is not provided,
	then the enlistment associated with the current working directory is
	registered.
+
Note: when this subcommand is called in a worktree that is called `src/`, its
parent directory is considered to be the Scalar enlistment. If the worktree is
_not_ called `src/`, it itself will be considered to be the Scalar enlistment.

Unregister
~~~~~~~~~~

unregister [<enlistment>]::
	Remove the specified repository from the list of repositories
	registered with Scalar and stop the scheduled background maintenance.

Run
~~~

scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]::
	Run the given maintenance task (or all tasks, if `all` was specified).
	Except for `all` and `config`, this subcommand simply hands off to
	linkgit:git-maintenance[1] (mapping `fetch` to `prefetch` and
	`pack-files` to `incremental-repack`).
+
These tasks are run automatically as part of the scheduled maintenance,
as soon as the repository is registered with Scalar. It should therefore
not be necessary to run this subcommand manually.
+
The `config` task is specific to Scalar and configures all those
opinionated default settings that make Git work more efficiently with
large repositories. As this task is run as part of `scalar clone`
automatically, explicit invocations of this task are rarely needed.

Reconfigure
~~~~~~~~~~~

After a Scalar upgrade, or when the configuration of a Scalar enlistment
was somehow corrupted or changed by mistake, this subcommand allows to
reconfigure the enlistment.

With the `--all` option, all enlistments currently registered with Scalar
will be reconfigured. Use this option after each Scalar upgrade.

Diagnose
~~~~~~~~

diagnose [<enlistment>]::
    When reporting issues with Scalar, it is often helpful to provide the
    information gathered by this command, including logs and certain
    statistics describing the data shape of the current enlistment.
+
The output of this command is a `.zip` file that is written into
a directory adjacent to the worktree in the `src` directory.

Delete
~~~~~~

delete <enlistment>::
	This subcommand lets you delete an existing Scalar enlistment from your
	local file system, unregistering the repository.

SEE ALSO
--------
linkgit:git-clone[1], linkgit:git-maintenance[1].

Scalar
---
Associated with the linkgit:git[1] suite
debug log:

solving 22583fe046e ...
found 22583fe046e in https://public-inbox.org/git/dfe821d10fe8b02ec0a2d210531e56fa16aefcd1.1651677919.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/87bdc22322b0f58bf153b963207cffe4f41c9ae9.1652210824.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/89c13a45e00deb1df45113a9249d3a125c7b4fee.1653145696.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/3fb90194744998e5dd8f2e5b46610a7cc773a09b.1652984283.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/0d570137bb6aef675f4f5d74d140ace1dfba5eb7.1644187146.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/ce85506e7a4313a4ae21ef712b84d8396ac45cdc.1643186507.git.gitgitgadget@gmail.com/
found f416d637289 in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100644 f416d637289c2cfae93c3c32184a1b1a5177b4e0	contrib/scalar/scalar.txt

applying [1/6] https://public-inbox.org/git/dfe821d10fe8b02ec0a2d210531e56fa16aefcd1.1651677919.git.gitgitgadget@gmail.com/
diff --git a/contrib/scalar/scalar.txt b/contrib/scalar/scalar.txt
index f416d637289..22583fe046e 100644

Checking patch contrib/scalar/scalar.txt...
Applied patch contrib/scalar/scalar.txt cleanly.

skipping https://public-inbox.org/git/87bdc22322b0f58bf153b963207cffe4f41c9ae9.1652210824.git.gitgitgadget@gmail.com/ for 22583fe046e
skipping https://public-inbox.org/git/89c13a45e00deb1df45113a9249d3a125c7b4fee.1653145696.git.gitgitgadget@gmail.com/ for 22583fe046e
skipping https://public-inbox.org/git/3fb90194744998e5dd8f2e5b46610a7cc773a09b.1652984283.git.gitgitgadget@gmail.com/ for 22583fe046e
skipping https://public-inbox.org/git/0d570137bb6aef675f4f5d74d140ace1dfba5eb7.1644187146.git.gitgitgadget@gmail.com/ for 22583fe046e
skipping https://public-inbox.org/git/ce85506e7a4313a4ae21ef712b84d8396ac45cdc.1643186507.git.gitgitgadget@gmail.com/ for 22583fe046e
index at:
100644 22583fe046e550d0d4b71047339008b78051e168	contrib/scalar/scalar.txt

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).