
The `git refs migrate` command was introduced in
25a0023f28
(builtin/refs: new command to migrate ref storage formats,
2024-06-06) to support migrating from one reference backend to another.
One limitation of the command was that it didn't support migrating
repositories which contained reflogs. A previous commit, added support
for adding reflog updates in ref transactions. Using the added
functionality bake in reflog support for `git refs migrate`.
To ensure that the order of the reflogs is maintained during the
migration, we add the index for each reflog update as we iterate over
the reflogs from the old reference backend. This is to ensure that the
order is maintained in the new backend.
Helped-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
73 lines
1.7 KiB
Plaintext
73 lines
1.7 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 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
|