git: add native version control and HTTP transport#19
Conversation
0c97e68 to
f83dd30
Compare
|
Independent devil's-advocate review completed against original head Review findings fixed in the tap:
Exact final source build and literal Homebrew test pass. Ruby syntax, style, strict online audit, Do not merge yet. The full upstream |
cbdfc94 to
892ed65
Compare
b7f4ed8 to
e8c3f61
Compare
892ed65 to
7559e56
Compare
Exercise Git's compiled exec and template paths instead of overriding them in the formula test, and make the known mergetool continuation path a required regression check. Install the exact upstream manpages and describe the source tree's complete license set.
|
Devil's-advocate audit found and fixed a masked compiled-path bug in
The Formula now passes the stable guest This review does not claim a fresh source build, bottle, stock-Homebrew pour, Node run, or Chromium run for the changed head; those remain explicit platform and publisher gates in the PR body. |
Purpose
Make Git 2.47.1 a first-class Kandelo Homebrew package, with its normal command, template, pager, editor, shell, local-clone, documentation, and HTTP/HTTPS workflows. This replaces the old registry package without reducing Git to a two-binary demo or hiding platform failures in wrappers.
Formula contract
git, upload/receive aliases, HTTP/HTTPS/FTP remote-helper aliases,git-sh-i18n--envsubst, the supported upstream shell commands and libraries, mergetool resources, templates, and the exact upstream 2.47.1 manpage set.gitexecdirandtemplate_dirto the stable guestopt/gitpaths. The test does not overrideGIT_EXEC_PATHorGIT_TEMPLATE_DIR, sogit initand nested command dispatch exercise the installed contract.fork: :requiredartifact contract.file://clone, submodule dispatch, nested shell aliases, Less pagination, mergetool discovery, the complete Vim editor runtime, envsubst, remote-helper capabilities, and HTTPS transport.Source validation
Exact audited head:
700c1f6b9543c77516b9e9dab5c9f0de1c33c5bc(tree9097ce358777c141e5cdced2db96bda672bad9aa; Formula SHA-2567981bfff16c550477eb21f2434a290740d86db1de337617f375f3528b523e50f).f3d8f9bb23ae392374e91cd9d395970dabc5b9c5ee72f39884613cd84a6ed310) and inspected the extracted 4,527-file source tree.ffc2005a89b056c0727b667f6beda0068371619762ea4844ad0229091befee13), its Git 2.47.1 identity, 198 regular0644files, safe member paths, and absence of symlinks or host paths.DEFAULT_GIT_TEMPLATE_DIR=/home/linuxbrew/.linuxbrew/opt/git/share/git-core/templates.git diff --check, the 120-column check, and the package rootfs-size test (5/5) passed for this audit.The previous branch head passed the shared support suite (37 runs, 279 assertions) and
brew style, but those results are not claimed for this changed head. No fresh Git source build, bottle,brew readall/style run, stock-Homebrew pour, Node runtime, or Chromium runtime is claimed yet.Platform gate
The full upstream mergetool surface exposed a real continuation-capacity failure. Four nested Dash children require 17,260-17,444 continuation bytes, exceeding the current 16,384-byte fork-save reserve by 876-1,060 bytes. PR #907 makes that overrun fail truthfully but intentionally does not increase capacity. Git therefore must not publish from ABI 39.
After #907 merges, a reviewed successor to #862 must land in the next ABI epoch, and Dash must be rebuilt with elastic continuation-frame accounting enabled. This Formula's exact
git mergetool --tool-helpregression then has to pass against that rebuilt Dash bottle. The Formula contains no source workaround for the kernel/instrumentation limit.The final build also requires the platform changes carried by #842, #873, #874/#883, #882, #888/#889, and #903 (or reviewed equivalents rebased into the final ABI line). In particular, #842 owns the SDK's 8 MiB linked-program shadow stack; the Formula intentionally does not hide that platform requirement with a Git-only linker flag.
Dependency and publication gates
Do not merge or publish this Formula until all ten declared dependency Formulae have landed and their exact final-ABI bottles have been built and poured first: Coreutils, Dash, Diffutils, grep, Less, libcurl, OpenSSL, sed, Vim, and zlib. Coreutils (#16), Diffutils (#21), and Vim (#36) remain open; the other direct Formulae are on tap
main. Git must be source-built against those poured bottles through the dependency-first publisher contract.Trusted publication remains gated on the main-repository publisher stack (#881 -> #887 -> #890 -> #885 -> #900 -> #910), tap branch-build gate #22, anonymous digest readback from the public GHCR package, and matching bottle/sidecar provenance. The resulting Git bottle must be force-poured through stock Homebrew inside Kandelo and the exact installed package exercised on both Node and Chromium.
Registry archives, historical ABI 18 artifacts, ABI 39 artifacts, review-keg hashes, and bottles built before the final dependency chain are not publication inputs. The Formula intentionally has no bottle block yet.