user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 2/6] another step towards git SHA-256 support
Date: Thu, 20 Oct 2022 08:43:10 +0000	[thread overview]
Message-ID: <20221020084314.1668067-3-e@80x24.org> (raw)
In-Reply-To: <20221020084314.1668067-1-e@80x24.org>

While SHA-256 isn't supported for inboxes, yet
xt/git-http-backend.t now runs properly against a SHA-256 code
repository
---
 lib/PublicInbox/GitHTTPBackend.pm | 12 +++++-------
 t/git.t                           |  4 ++--
 t/import.t                        |  4 ++--
 t/mda.t                           |  4 ++--
 xt/git-http-backend.t             |  4 ++--
 5 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/lib/PublicInbox/GitHTTPBackend.pm b/lib/PublicInbox/GitHTTPBackend.pm
index 3aae5454..72b8e6c3 100644
--- a/lib/PublicInbox/GitHTTPBackend.pm
+++ b/lib/PublicInbox/GitHTTPBackend.pm
@@ -23,10 +23,8 @@ my @text = qw[HEAD info/refs info/attributes
 	objects/info/(?:http-alternates|alternates|packs)
 	cloneurl description];
 
-my @binary = qw!
-	objects/[a-f0-9]{2}/[a-f0-9]{38}
-	objects/pack/pack-[a-f0-9]{40}\.(?:pack|idx)
-	!;
+my @binary = ('objects/[a-f0-9]{2}/[a-f0-9]{38,62}',
+	'objects/pack/pack-[a-f0-9]{40,64}\.(?:pack|idx)');
 
 our $ANY = join('|', @binary, @text, 'git-upload-pack');
 my $BIN = join('|', @binary);
@@ -62,13 +60,13 @@ sub serve_dumb {
 
 	my $h = [];
 	my $type;
-	if ($path =~ m!\Aobjects/[a-f0-9]{2}/[a-f0-9]{38}\z!) {
+	if ($path =~ m!\Aobjects/[a-f0-9]{2}/[a-f0-9]{38,62}\z!) {
 		$type = 'application/x-git-loose-object';
 		cache_one_year($h);
-	} elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40}\.pack\z!) {
+	} elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40,64}\.pack\z!) {
 		$type = 'application/x-git-packed-objects';
 		cache_one_year($h);
-	} elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40}\.idx\z!) {
+	} elsif ($path =~ m!\Aobjects/pack/pack-[a-f0-9]{40,64}\.idx\z!) {
 		$type = 'application/x-git-packed-objects-toc';
 		cache_one_year($h);
 	} elsif ($path =~ /\A(?:$TEXT)\z/o) {
diff --git a/t/git.t b/t/git.t
index 56fc8d95..d8957e42 100644
--- a/t/git.t
+++ b/t/git.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use Test::More;
@@ -44,7 +44,7 @@ use PublicInbox::Git;
 	my $f = 'HEAD:foo.txt';
 	my @x = $gcf->check($f);
 	is(scalar @x, 3, 'returned 3 element array for existing file');
-	like($x[0], qr/\A[a-f0-9]{40}\z/, 'returns obj ID in 1st element');
+	like($x[0], qr/\A[a-f0-9]{40,64}\z/, 'returns obj ID in 1st element');
 	is('blob', $x[1], 'returns obj type in 2nd element');
 	like($x[2], qr/\A\d+\z/, 'returns obj size in 3rd element');
 
diff --git a/t/import.t b/t/import.t
index ae76858b..4ba74022 100644
--- a/t/import.t
+++ b/t/import.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use warnings;
@@ -30,7 +30,7 @@ my $smsg = bless {}, 'PublicInbox::Smsg' if $v2;
 like($im->add($mime, undef, $smsg), qr/\A:[0-9]+\z/, 'added one message');
 
 if ($v2) {
-	like($smsg->{blob}, qr/\A[a-f0-9]{40}\z/, 'got last object_id');
+	like($smsg->{blob}, qr/\A[a-f0-9]{40,64}\z/, 'got last object_id');
 	my @cmd = ('git', "--git-dir=$git->{git_dir}", qw(hash-object --stdin));
 	open my $in, '+<', undef or BAIL_OUT "open(+<): $!";
 	print $in $mime->as_string or die "write failed: $!";
diff --git a/t/mda.t b/t/mda.t
index d20cdb92..e3c5cdff 100644
--- a/t/mda.t
+++ b/t/mda.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use warnings;
@@ -97,7 +97,7 @@ EOF
 		local $ENV{PATH} = $main_path;
 		ok(run_script(['-mda'], undef, { 0 => \$in }));
 		my $rev = $git->qx(qw(rev-list HEAD));
-		like($rev, qr/\A[a-f0-9]{40}/, "good revision committed");
+		like($rev, qr/\A[a-f0-9]{40,64}/, "good revision committed");
 		chomp $rev;
 		my $cmt = $git->cat_file($rev);
 		like($$cmt, qr/^author Me <me\@example\.com> 0 \+0000\n/m,
diff --git a/xt/git-http-backend.t b/xt/git-http-backend.t
index adadebb0..1f3ba063 100644
--- a/xt/git-http-backend.t
+++ b/xt/git-http-backend.t
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 #
 # Ensure buffering behavior in -httpd doesn't cause runaway memory use
@@ -53,7 +53,7 @@ SKIP: {
 		}
 	}
 	skip "no packs found in $git_dir" unless defined $pack;
-	if ($pack !~ m!(/objects/pack/pack-[a-f0-9]{40}.pack)\z!) {
+	if ($pack !~ m!(/objects/pack/pack-[a-f0-9]{40,64}.pack)\z!) {
 		skip "bad pack name: $pack";
 	}
 	my $url = $1;

  parent reply	other threads:[~2022-10-20  8:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-20  8:43 [PATCH 0/6] trivial clone|fetch-related stuff Eric Wong
2022-10-20  8:43 ` [PATCH 1/6] clone|fetch: preserve mtime of modified manifest.js.gz Eric Wong
2022-10-20  8:43 ` Eric Wong [this message]
2022-10-20  8:43 ` [PATCH 3/6] githttpbackend: remove unused $BIN variable Eric Wong
2022-10-20  8:43 ` [PATCH 4/6] treewide: replace /^I: / prefix with /^# / Eric Wong
2022-10-20  8:43 ` [PATCH 5/6] lei_mirror: make _finish_add_external call more obvious Eric Wong
2022-10-20  8:43 ` [PATCH 6/6] lei_mirror: delimit names by `\n' to improve die message Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221020084314.1668067-3-e@80x24.org \
    --to=e@80x24.org \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).