builtin/refs: new command to migrate ref storage formatsps/ref-storage-migration
commit25a0023f28600102f54e7529c20da5928c3e9c75
authorPatrick Steinhardt <ps@pks.im>
Thu, 6 Jun 2024 05:29:49 +0000 (6 07:29 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Jun 2024 16:04:34 +0000 (6 09:04 -0700)
tree899e73fbca791e0ab50b6ed9dff08f94888fc355
parent6d6a3a99c7c35093c4a39cbf4d20869e2db3a4d8
builtin/refs: new command to migrate ref storage formats

Introduce a new command that allows the user to migrate a repository
between ref storage formats. This new command is implemented as part of
a new git-refs(1) executable. This is due to two reasons:

  - There is no good place to put the migration logic in existing
    commands. git-maintenance(1) felt unwieldy, and git-pack-refs(1) is
    not the correct place to put it, either.

  - I had it in my mind to create a new low-level command for accessing
    refs for quite a while already. git-refs(1) is that command and can
    over time grow more functionality relating to refs. This should help
    discoverability by consolidating low-level access to refs into a
    single executable.

As mentioned in the preceding commit that introduces the ref storage
format migration logic, the new `git refs migrate` command still has a
bunch of restrictions. These restrictions are documented accordingly.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.gitignore
Documentation/git-refs.txt [new file with mode: 0644]
Makefile
builtin.h
builtin/refs.c [new file with mode: 0644]
command-list.txt
git.c
t/t1460-refs-migrate.sh [new file with mode: 0755]