SYNOPSIS
(DEPRECATED!) git survey <options>
DESCRIPTION
|
Note
|
git survey is being superseded by git repo structure. New
deployments and new features should use git repo structure; its
--ref-filter=<pattern> option subsumes the various --branches,
--tags, and --remotes flags here, and --top=<N> provides the
same detail tables. During the deprecation phase, git survey is
a thin shim over git repo structure. See git-repo(1).
|
Survey the repository and measure various dimensions of scale.
As repositories grow to "monorepo" size, certain data shapes can cause
performance problems. git-survey attempts to measure and report on
known problem areas.
Ref Selection and Reachable Objects
In this first analysis phase, git survey will iterate over the set of
requested branches, tags, and other refs and treewalk over all of the
reachable commits, trees, and blobs and generate various statistics.
OPTIONS
- --progress
-
Show progress. This is automatically enabled when interactive.
Ref Selection
The following options control the set of refs that git survey will examine.
By default, git survey will look at tags, local branches, and remote refs.
If any ref-selection option other than --detached is given, the default
set is cleared and only refs for the given options are added.
- --all-refs
-
Use all refs. This includes local branches, tags, remote refs, notes, and stashes. This option overrides all of the following.
- --branches
-
Add local branches (
refs/heads/) to the set. - --tags
-
Add tags (
refs/tags/) to the set. - --remotes
-
Add remote branches (
refs/remote/) to the set. - --detached
-
Ignored with a warning. This option does not affect ref selection.
- --other
-
Add notes (
refs/notes/) and stashes (refs/stash/) to the set.
MIGRATION
git repo structure selects all refs by default. To retain the survey
default scope, pass --ref-filter='refs/heads/*',
--ref-filter='refs/tags/*', and --ref-filter='refs/remotes/*'.
Neither command separately enumerates detached HEAD, even with
git survey --all-refs. To include history reachable only from HEAD,
first create a branch or tag pointing to HEAD and include that ref in
the selection. The new ref is also counted.
For path detail tables, git repo structure defaults to --top=0; use
--top=10 or repo.structure.top=10 for the survey default. The shim
always supplies --top (10 unless overridden on its command line), so
repo.structure.top does not change git survey's limit.
The git survey shim ignores all survey.* configuration settings.
When invoking git repo structure directly, use repo.structure.top
in place of survey.top; this setting does not affect git survey.
Use --progress or --no-progress instead of survey.progress;
there is no repo.structure.progress setting. survey.verbose has
no replacement, and the shim ignores --verbose with a warning.
OUTPUT
By default, git survey will print information about the repository in a
human-readable format that includes overviews and tables.
References Summary
The references summary includes a count of each kind of reference, including branches, remote refs, and tags (split by "all" and "annotated").
Reachable Object Summary
The reachable object summary shows the total number of each kind of Git object, including tags, commits, trees, and blobs.
GIT
Part of the git(1) suite