This will help with eventual git SHA-256 transitions.
my $hex = '[a-f0-9]';
my $addmsg = qr!^:000000 100644 \S+ (\S+) A\t${hex}{2}/${hex}{38}$!;
my $delmsg = qr!^:100644 000000 (\S+) \S+ D\t(${hex}{2}/${hex}{38})$!;
- my $refhex = qr/(?:HEAD|${hex}{4,40})(?:~[0-9]+)?/;
+ my $refhex = qr/(?:HEAD|${hex}{4,})(?:~[0-9]+)?/;
# revision ranges may be specified
my $range = 'HEAD';
if ($last) {
local $/ = "\n";
while (my $line = <$log>) {
- if ($line =~ /^(${hex}{7,40})/) {
+ if ($line =~ /^(${hex}{7,})/) {
$last_commit = $1;
last;
}
my $rbuf = delete($self->{cat_rbuf}) // \(my $new = '');
my ($bref, $oid, $type, $size);
my $head = my_readline($self->{in}, $rbuf);
- if ($head =~ /^([0-9a-f]{40}) (\S+) ([0-9]+)$/) {
+ if ($head =~ /^([0-9a-f]{40,}) (\S+) ([0-9]+)$/) {
($oid, $type, $size) = ($1, $2, $3 + 0);
$bref = my_read($self->{in}, $rbuf, $size + 1) or
fail($self, defined($bref) ? 'read EOF' : "read: $!");
local $/ = "\n";
my $info = <$r>;
defined $info or die "EOF from fast-import / cat-blob: $!";
- $info =~ /\A[a-f0-9]{40} blob ([0-9]+)\n\z/ or return;
+ $info =~ /\A[a-f0-9]{40,} blob ([0-9]+)\n\z/ or return;
my $left = $1;
my $offset = 0;
my $buf = '';
my ($r, $w, $tip, $path, $mime) = @_;
my $info = _check_path($r, $w, $tip, $path) or return ('MISSING',undef);
- $info =~ m!\A100644 blob ([a-f0-9]{40})\t!s or die "not blob: $info";
+ $info =~ m!\A100644 blob ([a-f0-9]{40,})\t!s or die "not blob: $info";
my $oid = $1;
my $msg = _cat_blob($r, $w, $oid) or die "BUG: cat-blob $1 failed";
my $cur = PublicInbox::Eml->new($msg);
sub UNSAFE () { "^A-Za-z0-9\-\._~/" }
-my $OID_NULL = '0{7,40}';
-my $OID_BLOB = '[a-f0-9]{7,40}';
+my $OID_NULL = '0{7,}';
+my $OID_BLOB = '[a-f0-9]{7,}';
my $LF = qr!\n!;
my $ANY = qr![^\n]!;
my $FN = qr!(?:"?[^/\n]+/[^\n]+|/dev/null)!;
our $MID_RE = qr!([^/]+)!;
our $END_RE = qr!(T/|t/|t\.mbox(?:\.gz)?|t\.atom|raw|)!;
our $ATTACH_RE = qr!([0-9][0-9\.]*)-($PublicInbox::Hval::FN)!;
-our $OID_RE = qr![a-f0-9]{7,40}!;
+our $OID_RE = qr![a-f0-9]{7,}!;
sub new {
my ($class, $pi_config) = @_;
ok(run_script($cmd, undef, $opt), "$t edit OK");
$cur = PublicInbox::Eml->new($ibx->msg_by_mid($mid));
like($cur->header('Subject'), qr/bool pfx/, "$t message edited");
- like($out, qr/[a-f0-9]{40}/, "$t shows commit on success");
+ like($out, qr/[a-f0-9]{40,}/, "$t shows commit on success");
}
$t = '-m MESSAGE_ID'; {
ok(run_script($cmd, undef, $opt), "$t edit OK");
$cur = PublicInbox::Eml->new($ibx->msg_by_mid($mid));
like($cur->header('Subject'), qr/boolean prefix/, "$t message edited");
- like($out, qr/[a-f0-9]{40}/, "$t shows commit on success");
+ like($out, qr/[a-f0-9]{40,}/, "$t shows commit on success");
}
$t = 'no-op -m MESSAGE_ID'; {
$im->add($mime);
$im->done;
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,}/, "good revision committed");
@ls = $git->qx(qw(ls-tree -r --name-only HEAD));
chomp @ls;
for my $tip (@$cmts) {
next if !defined $tip;
$changed_epochs++;
- like($tip, qr/\A[a-f0-9]{40}\z/,
+ like($tip, qr/\A[a-f0-9]{40,}\z/,
'replace returned current commit');
}
is($changed_epochs, 1, 'only one epoch changed');
{
ok($im->add($mime), 'add message to be purged');
local $SIG{__WARN__} = sub {};
- ok(my $cmts = $im->purge($mime), 'purged message');
- like($cmts->[0], qr/\A[a-f0-9]{40}\z/, 'purge returned current commit');
+ ok(my $cmt = $im->purge($mime), 'purged message');
+ like($cmt->[0], qr/\A[a-f0-9]{40,}\z/, 'purge returned current commit');
$im->done;
# again