sub default_branch () {
state $default_branch = do {
- delete local $ENV{GIT_CONFIG};
- my $r = popen_rd([qw(git config --global init.defaultBranch)]);
+ my $r = popen_rd([qw(git config --global init.defaultBranch)],
+ { GIT_CONFIG => undef });
chomp(my $h = <$r> // '');
close $r;
$h eq '' ? 'refs/heads/master' : $h;
$smsg->{blob} = $self->get_mark(":$blob");
$smsg->set_bytes($raw_email, $n);
if (my $oidx = delete $smsg->{-oidx}) { # used by LeiStore
- return if $oidx->blob_exists($smsg->{blob});
+ my @docids = $oidx->blob_exists($smsg->{blob});
+ my @vivify_xvmd;
+ for my $id (@docids) {
+ if (my $cur = $oidx->get_art($id)) {
+ # already imported if bytes > 0
+ return if $cur->{bytes} > 0;
+ push @vivify_xvmd, $id;
+ } else {
+ warn "W: $smsg->{blob} ",
+ "#$id gone (bug?)\n";
+ }
+ }
+ $smsg->{-vivify_xvmd} = \@vivify_xvmd;
}
}
my $ref = $self->{ref};
}
}
-sub digest2mid ($$) {
- my ($dig, $hdr) = @_;
+sub digest2mid ($$;$) {
+ my ($dig, $hdr, $fallback_time) = @_;
my $b64 = $dig->clone->b64digest;
# Make our own URLs nicer:
# See "Base 64 Encoding with URL and Filename Safe Alphabet" in RFC4648
# Add a date prefix to prevent a leading '-' in case that trips
# up some tools (e.g. if a Message-ID were a expected as a
# command-line arg)
- my $dt = msg_datestamp($hdr);
+ my $dt = msg_datestamp($hdr, $fallback_time);
$dt = POSIX::strftime('%Y%m%d%H%M%S', gmtime($dt));
"$dt.$b64" . '@z';
}