mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
The structure of a repository's history can have huge impacts on the performance and health of the repository itself. Currently, Git lacks a means to surface repository metrics regarding its structure/shape via a single command. Acquiring this information requires users to be familiar with the relevant data points and the various Git commands required to surface them. To fill this gap, supplemental tools such as git-sizer(1) have been developed. To allow users to more readily identify repository structure related information, introduce the "structure" subcommand in git-repo(1). The goal of this subcommand is to eventually provide similar functionality to git-sizer(1), but natively in Git. The initial version of this command only iterates through all references in the repository and tracks the count of branches, tags, remote refs, and other reference types. The corresponding information is displayed in a human-friendly table formatted in a very similar manner to git-sizer(1). The width of each table column is adjusted automatically to satisfy the requirements of the widest row contained. Subsequent commits will surface additional relevant data points to output and also provide other more machine-friendly output formats. Based-on-patch-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
100 lines
2.5 KiB
Plaintext
100 lines
2.5 KiB
Plaintext
git-repo(1)
|
|
===========
|
|
|
|
NAME
|
|
----
|
|
git-repo - Retrieve information about the repository
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[synopsis]
|
|
git repo info [--format=(keyvalue|nul)] [-z] [<key>...]
|
|
git repo structure
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
Retrieve information about the repository.
|
|
|
|
THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.
|
|
|
|
COMMANDS
|
|
--------
|
|
`info [--format=(keyvalue|nul)] [-z] [<key>...]`::
|
|
Retrieve metadata-related information about the current repository. Only
|
|
the requested data will be returned based on their keys (see "INFO KEYS"
|
|
section below).
|
|
+
|
|
The values are returned in the same order in which their respective keys were
|
|
requested.
|
|
+
|
|
The output format can be chosen through the flag `--format`. Two formats are
|
|
supported:
|
|
+
|
|
`keyvalue`:::
|
|
output key-value pairs one per line using the `=` character as
|
|
the delimiter between the key and the value. Values containing "unusual"
|
|
characters are quoted as explained for the configuration variable
|
|
`core.quotePath` (see linkgit:git-config[1]). This is the default.
|
|
|
|
`nul`:::
|
|
similar to `keyvalue`, but using a newline character as the delimiter
|
|
between the key and the value and using a NUL character after each value.
|
|
This format is better suited for being parsed by another applications than
|
|
`keyvalue`. Unlike in the `keyvalue` format, the values are never quoted.
|
|
+
|
|
`-z` is an alias for `--format=nul`.
|
|
|
|
`structure`::
|
|
Retrieve statistics about the current repository structure. The
|
|
following kinds of information are reported:
|
|
+
|
|
* Reference counts categorized by type
|
|
|
|
+
|
|
The table output format may change and is not intended for machine parsing.
|
|
|
|
INFO KEYS
|
|
---------
|
|
In order to obtain a set of values from `git repo info`, you should provide
|
|
the keys that identify them. Here's a list of the available keys and the
|
|
values that they return:
|
|
|
|
`layout.bare`::
|
|
`true` if this is a bare repository, otherwise `false`.
|
|
|
|
`layout.shallow`::
|
|
`true` if this is a shallow repository, otherwise `false`.
|
|
|
|
`object.format`::
|
|
The object format (hash algorithm) used in the repository.
|
|
|
|
`references.format`::
|
|
The reference storage format. The valid values are:
|
|
+
|
|
include::ref-storage-format.adoc[]
|
|
|
|
EXAMPLES
|
|
--------
|
|
|
|
* Retrieves the reference format of the current repository:
|
|
+
|
|
------------
|
|
git repo info references.format
|
|
------------
|
|
+
|
|
|
|
* Retrieves whether the current repository is bare and whether it is shallow
|
|
using the `nul` format:
|
|
+
|
|
------------
|
|
git repo info --format=nul layout.bare layout.shallow
|
|
------------
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-rev-parse[1]
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|