no warnings qw(recursion);
sub runcmd {
- system @_ and die "$! $?";
+ system @_ and die "@_ $! $?";
}
$!=0; $?=0;
my $bare = `git rev-parse --is-bare-repository`;
die "$? $!" if $?;
+chomp $bare or die;
sub getobj ($$) {
my ($obj, $type) = @_;
my $olddata = getobj $obj, 'commit';
$olddata =~ m/(?<=\n)(?=\n)/ or die "$obj ?";
my $msg = $';
- $_ = $`;
+ local $_ = $`;
s{^(parent )(\w+)$}{ $1 . rewrite_commit($2) }gme;
$count{'fix overwrite'} += s{^commiter }{committer }gm;
if (!m{^author }m && !m{^committer }m) {
chdir $td or die $!;
runcmd qw(git init -q);
runcmd qw(git config gc.auto 0);
- rmdir ".git/objects";
- symlink "../objects", ".git/objects" or die $!;
+ runcmd qw(rm -rf .git/objects);
+ symlink "../../objects", ".git/objects" or die $!;
runcmd qw(git checkout -q), $old;
open C, "debian/changelog" or die $!;
my $rewrite;
if ($type eq 'commit') {
$rewrite = rewrite_commit($obj);
- if ($refname =~ m{^refs/dgit/^[/]+$}) {
+print STDERR "RW? $refname $obj $rewrite\n";
+ if ($refname =~ m{^refs/dgit/[^/]+$} &&
+ $rewrite ne $obj) {
+print STDERR "RW $refname\n";
$rewrite = rewrite_commit_adddummy $refname, $obj, $rewrite;
}
} elsif ($type eq 'tag') {