]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/pack-refs: factor out core logic into a shared library
authorMeet Soni <meetsoni3017@gmail.com>
Fri, 19 Sep 2025 08:26:43 +0000 (13:56 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Sep 2025 17:02:55 +0000 (10:02 -0700)
commit0d4ec339227d04bcba89390bdef22d4dce30d271
treee6c3d9c303283cd4cfc6fd3fefe0de1ca42fa279
parent0bef41319c889e6409ea4c1369747a70cbae7c1f
builtin/pack-refs: factor out core logic into a shared library

The implementation of `git pack-refs` is monolithic within
`cmd_pack_refs()`, making it impossible to share its logic with other
commands. To enable code reuse for the upcoming `git refs optimize`
subcommand, refactor the core logic into a shared helper function.

Split the original `builtin/pack-refs.c` file into two parts:

- A new shared library file, `pack-refs.c`, which contains the
  core option parsing and packing logic in a new `pack_refs_core()`
  helper function.

- The original `builtin/pack-refs.c`, which is now a thin wrapper
  responsible only for defining the `git pack-refs` command and
  calling the shared helper.

A new `pack-refs.h` header is also introduced to define the public
interface for this shared logic.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: shejialuo <shejialuo@gmail.com>
Signed-off-by: Meet Soni <meetsoni3017@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin/pack-refs.c
meson.build
pack-refs.c [new file with mode: 0644]
pack-refs.h [new file with mode: 0644]