Commit: e0d768747aab917aef62d5d93a24e3c6c55aa28a
Parent: e1366ef138d294b5bda663f56ed1ad4601180eff
Author: Michael Forney
Date: Mon, 11 May 2026 23:54:32 -0700
git: Update to 2.54.0
Diffstat:
11 files changed, 75 insertions(+), 135 deletions(-)
diff --git a/.gitmodules b/.gitmodules
@@ -20,7 +20,7 @@
[submodule "pkg/git/src"]
path = pkg/git/src
url = https://github.com/git/git.git
- ignore = all
+ ignore = untracked
[submodule "pkg/libevent/src"]
path = pkg/libevent/src
url = https://github.com/libevent/libevent.git
diff --git a/dist/.gitignore b/dist/.gitignore
@@ -1,5 +1,5 @@
/curl-8.14.1.tar.gz
-/git-manpages-2.49.0.tar.gz
+/git-manpages-2.54.0.tar.gz
/hyx-2026.01.11.tar.xz
/less-643.tar.gz
/linux-7.0.tar.xz
diff --git a/pkg/git/commands.txt b/pkg/git/commands.txt
@@ -42,6 +42,7 @@ git-describe.adoc
git-diagnose.adoc
git-diff-files.adoc
git-diff-index.adoc
+git-diff-pairs.adoc
git-diff-tree.adoc
git-diff.adoc
git-difftool.adoc
@@ -63,6 +64,7 @@ git-grep.adoc
git-gui.adoc
git-hash-object.adoc
git-help.adoc
+git-history.adoc
git-hook.adoc
git-http-backend.adoc
git-http-fetch.adoc
@@ -73,6 +75,7 @@ git-init-db.adoc
git-init.adoc
git-instaweb.adoc
git-interpret-trailers.adoc
+git-last-modified.adoc
git-log.adoc
git-ls-files.adoc
git-ls-remote.adoc
@@ -116,6 +119,7 @@ git-remote.adoc
git-repack.adoc
git-replace.adoc
git-replay.adoc
+git-repo.adoc
git-request-pull.adoc
git-rerere.adoc
git-reset.adoc
@@ -168,6 +172,7 @@ gitcli.adoc
gitcore-tutorial.adoc
gitcredentials.adoc
gitcvs-migration.adoc
+gitdatamodel.adoc
gitdiffcore.adoc
giteveryday.adoc
gitfaq.adoc
@@ -175,6 +180,7 @@ gitformat-bundle.adoc
gitformat-chunk.adoc
gitformat-commit-graph.adoc
gitformat-index.adoc
+gitformat-loose.adoc
gitformat-pack.adoc
gitformat-signature.adoc
gitglossary.adoc
diff --git a/pkg/git/config.h b/pkg/git/config.h
@@ -14,9 +14,10 @@
#define HAVE_DEV_TTY
#define HAVE_CLOCK_GETTIME
#define HAVE_CLOCK_MONOTONIC
-#define HAVE_SYNC_FILE_RANGE
#define HAVE_GETRANDOM
#define HAVE_GETDELIM
+#define HAVE_SYNC_FILE_RANGE
+#define HAVE_SYSINFO
#define NO_GETTEXT
#define NO_OPENSSL
#define NO_SYS_POLL_H
diff --git a/pkg/git/configs.txt b/pkg/git/configs.txt
@@ -41,6 +41,7 @@ config/grep.adoc
config/gui.adoc
config/guitool.adoc
config/help.adoc
+config/hook.adoc
config/http.adoc
config/i18n.adoc
config/imap.adoc
@@ -71,6 +72,7 @@ config/reftable.adoc
config/remote.adoc
config/remotes.adoc
config/repack.adoc
+config/replay.adoc
config/rerere.adoc
config/revert.adoc
config/safe.adoc
diff --git a/pkg/git/gen.lua b/pkg/git/gen.lua
@@ -1,11 +1,11 @@
-cflags({
+cflags{
'-include $dir/config.h',
'-I $srcdir',
'-I $srcdir/compat/regex',
'-I $outdir',
'-isystem $builddir/pkg/curl/include',
'-isystem $builddir/pkg/zlib/include',
-})
+}
pkg.deps = {
'$outdir/version-def.h',
@@ -16,28 +16,28 @@ pkg.deps = {
'pkg/zlib/headers',
}
-rule('cmdlist', '$srcdir/generate-cmdlist.sh $srcdir $out')
+rule('cmdlist', '$srcdir/tools/generate-cmdlist.sh $srcdir $out')
build('cmdlist', '$outdir/command-list.h', {
- '|', '$srcdir/generate-cmdlist.sh', '$srcdir/command-list.txt',
+ '|', '$srcdir/tools/generate-cmdlist.sh', '$srcdir/command-list.txt',
expand({'$srcdir/Documentation/', lines('commands.txt')}),
})
-rule('configlist', '$srcdir/generate-configlist.sh $srcdir $out')
+rule('configlist', '$srcdir/tools/generate-configlist.sh $srcdir $out')
build('configlist', '$outdir/config-list.h', {
- '|', '$srcdir/generate-configlist.sh',
+ '|', '$srcdir/tools/generate-configlist.sh',
expand({'$srcdir/Documentation/', lines('configs.txt')}),
})
-rule('hooklist', '$srcdir/generate-hooklist.sh $srcdir $out')
+rule('hooklist', '$srcdir/tools/generate-hooklist.sh $srcdir $out')
build('hooklist', '$outdir/hook-list.h', {
- '|', '$srcdir/generate-hooklist.sh', '$srcdir/Documentation/githooks.adoc'
+ '|', '$srcdir/tools/generate-hooklist.sh', '$srcdir/Documentation/githooks.adoc'
})
build('sed', '$outdir/version-def.h', '$srcdir/version-def.h.in', {
expr={
- [[-e 's,@GIT_VERSION@,2.49.0,']],
+ [[-e 's,@GIT_VERSION@,2.54.0,']],
[[-e 's,@GIT_BUILT_FROM_COMMIT@,,']],
- [[-e 's,@GIT_USER_AGENT@,git/2.49.0,']],
+ [[-e 's,@GIT_USER_AGENT@,git/2.54.0,']],
},
})
@@ -46,25 +46,6 @@ cc('common-main.c')
cc('http.c')
cc('compat/regex/regex.c', nil, {cflags='$cflags -DGAWK -DNO_MBSUPPORT'})
--- src/Makefile:/^REFTABLE_OBJS.\+=
-lib('libreftable.a', [[
- reftable/(
- basics.c
- error.c
- block.c
- blocksource.c
- iter.c
- merged.c
- pq.c
- reader.c
- record.c
- stack.c
- system.c
- tree.c
- writer.c
- )
-]])
-
-- src/Makefile:/^LIB_OBJS.\+=
lib('libgit.a', [[
abspath.c
@@ -84,7 +65,6 @@ lib('libgit.a', [[
blob.c
bloom.c
branch.c
- bulk-checkin.c
bundle-uri.c
bundle.c
cache-tree.c
@@ -102,9 +82,11 @@ lib('libgit.a', [[
common-init.c
compat/nonblock.c
compat/obstack.c
+ compat/open.c
compat/qsort_s.c
compat/regex/regex.c.o
compat/terminal.c
+ compiler-tricks/not-constant.c
config.c
connect.c
connected.c
@@ -151,6 +133,7 @@ lib('libgit.a', [[
graph.c
grep.c
hash-lookup.c
+ hash.c
hashmap.c
help.c
hex-ll.c
@@ -178,7 +161,6 @@ lib('libgit.a', [[
merge-ll.c
merge-ort.c
merge-ort-wrappers.c
- merge-recursive.c
merge.c
midx.c
midx-write.c
@@ -194,6 +176,10 @@ lib('libgit.a', [[
object-file.c
object-name.c
object.c
+ odb.c
+ odb/source.c
+ odb/source-files.c
+ odb/streaming.c
oid-array.c
oidmap.c
oidset.c
@@ -203,6 +189,7 @@ lib('libgit.a', [[
pack-check.c
pack-mtimes.c
pack-objects.c
+ pack-refs.c
pack-revindex.c
pack-write.c
packfile.c
@@ -244,8 +231,31 @@ lib('libgit.a', [[
refs/packed-backend.c
refs/ref-cache.c
refspec.c
+ reftable/(
+ basics.c
+ block.c
+ blocksource.c
+ error.c
+ fsck.c
+ iter.c
+ merged.c
+ pq.c
+ record.c
+ stack.c
+ system.c
+ table.c
+ tree.c
+ writer.c
+ )
remote.c
+ repack.c
+ repack-cruft.c
+ repack-filtered.c
+ repack-geometry.c
+ repack-midx.c
+ repack-promisor.c
replace-object.c
+ replay.c
repo-settings.c
repository.c
rerere.c
@@ -266,7 +276,6 @@ lib('libgit.a', [[
stable-qsort.c
statinfo.c
strbuf.c
- streaming.c
string-list.c
strmap.c
strvec.c
@@ -318,6 +327,15 @@ lib('libgit.a', [[
ws.c
wt-status.c
xdiff-interface.c
+ xdiff/(
+ xdiffi.c
+ xemit.c
+ xhistogram.c
+ xmerge.c
+ xpatience.c
+ xprepare.c
+ xutils.c
+ )
unix-socket.c
unix-stream-server.c
@@ -332,22 +350,9 @@ lib('libgit.a', [[
compat/linux/procinfo.c
- libxdiff.a
- libreftable.a
$builddir/pkg/zlib/libz.a
]])
--- src/Makefile:/^XDIFF_OBJS.\+=
-lib('libxdiff.a', [[xdiff/(
- xdiffi.c
- xemit.c
- xhistogram.c
- xmerge.c
- xpatience.c
- xprepare.c
- xutils.c
-)]])
-
-- src/Makefile:/^BUILTIN_OBJS.\+=
local builtins = {
'add',
@@ -385,6 +390,7 @@ local builtins = {
'diagnose',
'diff-files',
'diff-index',
+ 'diff-pairs',
'diff-tree',
'diff',
'difftool',
@@ -402,10 +408,12 @@ local builtins = {
'grep',
'hash-object',
'help',
+ 'history',
'hook',
'index-pack',
'init-db',
'interpret-trailers',
+ 'last-modified',
'log',
'ls-files',
'ls-remote',
@@ -445,6 +453,7 @@ local builtins = {
'repack',
'replace',
'replay',
+ 'repo',
'rerere',
'reset',
'rev-list',
diff --git a/pkg/git/man.txt b/pkg/git/man.txt
@@ -41,6 +41,7 @@ man1/git-describe.1
man1/git-diagnose.1
man1/git-diff-files.1
man1/git-diff-index.1
+man1/git-diff-pairs.1
man1/git-diff-tree.1
man1/git-diff.1
man1/git-difftool.1
@@ -62,6 +63,7 @@ man1/git-grep.1
man1/git-gui.1
man1/git-hash-object.1
man1/git-help.1
+man1/git-history.1
man1/git-hook.1
man1/git-http-backend.1
man1/git-http-fetch.1
@@ -72,6 +74,7 @@ man1/git-init-db.1
man1/git-init.1
man1/git-instaweb.1
man1/git-interpret-trailers.1
+man1/git-last-modified.1
man1/git-log.1
man1/git-ls-files.1
man1/git-ls-remote.1
@@ -115,6 +118,7 @@ man1/git-remote.1
man1/git-repack.1
man1/git-replace.1
man1/git-replay.1
+man1/git-repo.1
man1/git-request-pull.1
man1/git-rerere.1
man1/git-reset.1
@@ -169,6 +173,7 @@ man5/gitformat-bundle.5
man5/gitformat-chunk.5
man5/gitformat-commit-graph.5
man5/gitformat-index.5
+man5/gitformat-loose.5
man5/gitformat-pack.5
man5/gitformat-signature.5
man5/githooks.5
@@ -186,6 +191,7 @@ man7/gitcli.7
man7/gitcore-tutorial.7
man7/gitcredentials.7
man7/gitcvs-migration.7
+man7/gitdatamodel.7
man7/gitdiffcore.7
man7/giteveryday.7
man7/gitfaq.7
diff --git a/pkg/git/patch/0001-request-pull-use-awk-instead-of-perl-to-parse-ls-rem.patch b/pkg/git/patch/0001-request-pull-use-awk-instead-of-perl-to-parse-ls-rem.patch
@@ -1,84 +0,0 @@
-From 742272838f08fa1b9fe47ef842253ac84a502ee7 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Tue, 16 Mar 2021 17:21:31 -0700
-Subject: [PATCH] request-pull: use awk instead of perl to parse ls-remote
- output
-
----
- git-request-pull.sh | 48 +++++++++++++++++++++++++++------------------
- 1 file changed, 29 insertions(+), 19 deletions(-)
-
-diff --git a/git-request-pull.sh b/git-request-pull.sh
-index 775ba8ea11..a7177c5e1c 100755
---- a/git-request-pull.sh
-+++ b/git-request-pull.sh
-@@ -82,37 +82,47 @@ die "fatal: No commits in common between $base and $head"
- # Find a ref with the same name as $head that exists at the remote
- # and points to the same commit as the local object.
- find_matching_ref='
-- my ($head,$headrev) = (@ARGV);
-- my $pattern = qr{/\Q$head\E$};
-- my ($remote_sha1, $found);
-+ function endswith(s, t) {
-+ n = length(s)
-+ m = length(t)
-+ return m <= n && substr(s, n - m + 1) == t
-+ }
-
-- while (<STDIN>) {
-- chomp;
-- my ($sha1, $ref, $deref) = /^(\S+)\s+([^^]+)(\S*)$/;
-+ {
-+ sha1 = $1
-+ ref = $2
-
-- if ($sha1 eq $head) {
-- $found = $remote_sha1 = $sha1;
-- break;
-+ if (sha1 == head) {
-+ found = remote_sha1 = sha1
-+ exit
- }
-
-- if ($ref eq $head || $ref =~ $pattern) {
-- if ($deref eq "") {
-+ deref = index(ref, "^")
-+ if (deref)
-+ ref = substr(ref, 1, deref - 1)
-+
-+ if (ref == head || endswith(ref, "/" head)) {
-+ if (!deref) {
- # Remember the matching object on the remote side
-- $remote_sha1 = $sha1;
-+ remote_sha1 = sha1
- }
-- if ($sha1 eq $headrev) {
-- $found = $ref;
-- break;
-+ if (sha1 == headrev) {
-+ found = ref
-+ exit
- }
- }
- }
-- if ($found) {
-- $remote_sha1 = $headrev if ! defined $remote_sha1;
-- print "$remote_sha1 $found\n";
-+
-+ END {
-+ if (found) {
-+ if (!remote_sha1)
-+ remote_sha1 = headrev
-+ print remote_sha1 " " found
-+ }
- }
- '
-
--set fnord $(git ls-remote "$url" | @PERL_PATH@ -e "$find_matching_ref" "${remote:-HEAD}" "$headrev")
-+set fnord $(git ls-remote "$url" | awk -v "head=${remote:-HEAD}" -v "headrev=$headrev" "$find_matching_ref")
- remote_sha1=$2
- ref=$3
-
---
-2.45.2
-
diff --git a/pkg/git/sha256 b/pkg/git/sha256
@@ -1 +1 @@
-b561252841ead1e32d87dbec8f257399ea08f759c98df62c3bafa5a658f2f8ac git-manpages-2.49.0.tar.gz
+2d0950c3dd3346f1072e5791ac308961639828f2b6ba91927e64fed97a1bd550 git-manpages-2.54.0.tar.gz
diff --git a/pkg/git/url b/pkg/git/url
@@ -1 +1 @@
-url = "https://www.kernel.org/pub/software/scm/git/git-manpages-2.49.0.tar.gz"
+url = "https://www.kernel.org/pub/software/scm/git/git-manpages-2.54.0.tar.gz"
diff --git a/pkg/git/ver b/pkg/git/ver
@@ -1 +1 @@
-2.49.0 r0
+2.54.0 r0