git/Documentation/git-refs.txt
shejialuo bf061d26c7 builtin/refs: add verify subcommand
Introduce a new subcommand "verify" in git-refs(1) to allow the user to
check the reference database consistency and also this subcommand will
be used as the entry point of checking refs for "git-fsck(1)".

Add "verbose" field into "fsck_options" to indicate whether we should
print verbose messages when checking refs and objects consistency.

Remove bit-field for "strict" field, this is because we cannot take
address of a bit-field which makes it unhandy to set member variables
when parsing the command line options.

The "git-fsck(1)" declares "fsck_options" variable with "static"
identifier which avoids complaint by the leak-checker. However, in
"git-refs verify", we need to do memory clean manually. Thus add
"fsck_options_clear" function in "fsck.c" to provide memory clean
operation.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: shejialuo <shejialuo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-08 09:36:53 -07:00

75 lines
1.8 KiB
Plaintext

git-refs(1)
===========
NAME
----
git-refs - Low-level access to refs
SYNOPSIS
--------
[verse]
'git refs migrate' --ref-format=<format> [--dry-run]
'git refs verify' [--strict] [--verbose]
DESCRIPTION
-----------
This command provides low-level access to refs.
COMMANDS
--------
migrate::
Migrate ref store between different formats.
verify::
Verify reference database consistency.
OPTIONS
-------
The following options are specific to 'git refs migrate':
--ref-format=<format>::
The ref format to migrate the ref store to. Can be one of:
+
include::ref-storage-format.txt[]
--dry-run::
Perform the migration, but do not modify the repository. The migrated
refs will be written into a separate directory that can be inspected
separately. The name of the directory will be reported on stdout. This
can be used to double check that the migration works as expected before
performing the actual migration.
The following options are specific to 'git refs verify':
--strict::
Enable stricter error checking. This will cause warnings to be
reported as errors. See linkgit:git-fsck[1].
--verbose::
When verifying the reference database consistency, be chatty.
KNOWN LIMITATIONS
-----------------
The ref format migration has several known limitations in its current form:
* It is not possible to migrate repositories that have reflogs.
* It is not possible to migrate repositories that have worktrees.
* There is no way to block concurrent writes to the repository during an
ongoing migration. Concurrent writes can lead to an inconsistent migrated
state. Users are expected to block writes on a higher level. If your
repository is registered for scheduled maintenance, it is recommended to
unregister it first with git-maintenance(1).
These limitations may eventually be lifted.
GIT
---
Part of the linkgit:git[1] suite