Skip to content

Ability to use git refs migrate --ref-format=reftable - #769

Merged
hannesa2 merged 1 commit into
masterfrom
ref-format-reftable
Oct 24, 2026
Merged

hannesa2 merged 1 commit into
masterfrom
ref-format-reftable

Conversation

@hannesa2

@hannesa2 hannesa2 commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Ability to use git refs migrate --ref-format=reftable

close #768
refs gitx/objective-git#118


Depends on gitx/objective-git#118, which bumps the vendored libgit2 submodule to
the v2.0.0-rc.1 release candidate so that extensions.refstorage=reftable
is at least recognized (v1.9.x rejects it outright).

Caveat: v2.0.0-rc.1 doesn't yet ship a working reftable refdb backend
upstream (libgit2/libgit2#5352 is still open), so PBReftableRepositoryTests
will keep failing with unsupported extension name extensions.refstorage
until a libgit2 release with real reftable backend support is available.
This PR/branch exists to make it easy to re-verify as soon as that lands.

@hannesa2
hannesa2 force-pushed the ref-format-reftable branch 4 times, most recently from 332aefa to e419800 Compare October 23, 2026 18:23
@hannesa2

Copy link
Copy Markdown
Contributor Author

I can confirm, that the build artifacts works properly.
As it changes in gitx/objective-git#118 to libgit2 v2.0.0.0-rc1 I just want to ask if you @goneng are fine with it ?
At least I'm fine, as it's just a number cosmetic

@hannesa2
hannesa2 requested a review from goneng October 23, 2026 18:25
@goneng

goneng commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

I can confirm, that the build artifacts works properly. As it changes in gitx/objective-git#118 to libgit2 v2.0.0.0-rc1 I just want to ask if you @goneng are fine with it ? At least I'm fine, as it's just a number cosmetic

Hi @hannesa2, I think Reftable support is a nice addition, and the integration tests (bare repos, linked worktrees, the SHA-256 rejection) look thorough.
I built the PR head locally and the full unit suite passes (352 tests, including the 5 reftable ones).

On your question about libgit2 v2.0.0-rc.1: I'm fine with moving to it for reftable support.
(I saw that the 1.9.x security fixes are present in rc.1 and that no public function was removed.)

A few things I'd still like to see:

Before merging

Smaller suggestions

  • README: the libgit2 section names revision 0551dfd4, but the pin is the v2.0.0-rc.1 tag, which contains it.
    Naming the tag would be clearer.
  • README: "Apple's bundled Git may be too old" - Apple Git 2.50.1 (macOS here) handles reftable repositories fine.
    Maybe state the Git 2.45 minimum and name the macOS versions that ship an older Git.
  • PBGitRepository.m:90: the project avoids explanatory inline comments, and
    the error text already says what is unsupported.
  • PBReftableRepositoryTests could live in its own file instead of PBRepositoryFinderTests.m.
    (That needs a pbxproj entry, so it is fine to skip, if you prefer to keep it as-is.

Happy to re-review once gitx/objective-git#118 lands.

@hannesa2
hannesa2 force-pushed the ref-format-reftable branch from e419800 to 7eca7db Compare October 24, 2026 06:12
@hannesa2

hannesa2 commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor Author

I applied all suggestions as good as I can @goneng

Sure, as soon this one if fine, I'll first merge gitx/objective-git#118 then I'll change this one again with right submodule pointer

goneng
goneng previously approved these changes Oct 24, 2026

@goneng goneng left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for applying the suggestions, Hannes. I rebuilt the new head locally and the full unit suite passes (352 tests).

One small suggestion re. the README:

The sentence "For GitX's command-line operations, select Git 2.45 or newer in Preferences"
now sits at the end of the paragraph about the test suite.
It reads better next to the first paragraph, where reftable repositories are introduced.

(The screenshot-diff comment looks like text-rendering noise to me - same 3043 commits and same rows in history-view - and this PR touches no UI code. I only looked at that one image.)

@hannesa2
hannesa2 force-pushed the ref-format-reftable branch 2 times, most recently from f4621dc to 5d79bd1 Compare October 24, 2026 10:46
@hannesa2
hannesa2 force-pushed the ref-format-reftable branch from 5d79bd1 to 7b26672 Compare October 24, 2026 21:46
@hannesa2

Copy link
Copy Markdown
Contributor Author

@hannesa2
hannesa2 merged commit 1293cde into master Oct 24, 2026
3 checks passed
@hannesa2
hannesa2 deleted the ref-format-reftable branch October 24, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

git refs migrate --ref-format=reftable

2 participants