Files
git/Documentation/git-survey.adoc
Derrick Stolee f13ffd0862 survey: start pretty printing data in table form
When 'git survey' provides information to the user, this will be presented
in one of two formats: plaintext and JSON. The JSON implementation will be
delayed until the functionality is complete for the plaintext format.

The most important parts of the plaintext format are headers specifying the
different sections of the report and tables providing concreted data.

Create a custom table data structure that allows specifying a list of
strings for the row values. When printing the table, check each column for
the maximum width so we can create a table of the correct size from the
start.

The table structure is designed to be flexible to the different kinds of
output that will be implemented in future changes.

Signed-off-by: Derrick Stolee <stolee@gmail.com>
2026-04-02 21:30:03 +02:00

78 lines
1.9 KiB
Plaintext

git-survey(1)
=============
NAME
----
git-survey - EXPERIMENTAL: Measure various repository dimensions of scale
SYNOPSIS
--------
[verse]
(EXPERIMENTAL!) 'git survey' <options>
DESCRIPTION
-----------
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 of the following options are 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::
Add HEAD to the set.
--other::
Add notes (`refs/notes/`) and stashes (`refs/stash/`) to the set.
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").
GIT
---
Part of the linkgit:git[1] suite