X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit-badcommit-fixup;h=46637899d91920f234cb78bb27b4f7eb58af912b;hb=88f02532eb93f6a108c94a1aae0d5ba5dabbacac;hp=f507e48c28072bfcb5e4cfb1ff7c1ba3af622ff0;hpb=86cbeb5e4396d0722aaf3049cc01d084117bb8a4;p=dgit.git diff --git a/dgit-badcommit-fixup b/dgit-badcommit-fixup index f507e48c..46637899 100755 --- a/dgit-badcommit-fixup +++ b/dgit-badcommit-fixup @@ -104,70 +104,10 @@ sub rewrite_commit ($) { return $newobj; } -sub rewrite_commit_adddummy ($$$) { - my ($ref, $veryold, $old) = @_; - - die "$bare ?" unless $bare eq 'true'; - - my $td = 'dgit-broken-fixup.tmp'; - runcmd qw(rm -rf), $td; - mkdir $td, 0700 or die "$td $!"; - chdir $td or die $!; - runcmd qw(git init -q); - runcmd qw(git config gc.auto 0); - 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 $clog = do { - local $/ = undef; - ; - }; - C->error and die $!; - close C or die $!; - defined $clog or die $!; - - $!=0; $?=0; - my $v = `dpkg-parsechangelog`; - die "$ref $veryold $old $? $!" if $?; - $v =~ m/^Source: (\S+)$/m or die "$ref $veryold $old ?"; - my $pkg = $1; - $v =~ m/^Version: (\S+)$/m or die "$ref $veryold $old ?"; - my $vsn = $1; - $vsn .= "+~dgitfix"; - - open C, ">", "debian/changelog" or die $!; - print C < Thu, 05 Jan 2017 17:58:21 +0000 - -END - print C $clog or die $!; - close C or die $!; - - runcmd qw(git commit -q), - '--author=Ian Jackson ', - qw(-m), 'Dummy changelog entry to work around #849041 fallout', - qw(debian/changelog); - - $!=0; $?=0; - my $new = `git rev-parse HEAD`; - die "$? $!" if $?; - chomp $new or die; - - chdir '..' or die $!; - runcmd qw(rm -rf), $td; - - $count{dummyadded}++; +our @updates; - return $new; +sub filter_updates () { + @updates = grep { $_->[1] ne $_->[2] } @updates; } sub rewrite_tag ($) { @@ -195,8 +135,6 @@ die "$? $!" if $?; chomp $refs; -our @updates; - foreach my $rline (split /\n/, $refs) { my ($obj, $type, $refname) = $rline =~ m/^(\w+)\s+(\w+)\s+(\S.*)/ @@ -204,21 +142,16 @@ foreach my $rline (split /\n/, $refs) { my $rewrite; if ($type eq 'commit') { $rewrite = rewrite_commit($obj); - if ($refname =~ m{^refs/dgit/[^/]+$} && - $rewrite ne $obj) { - $rewrite = rewrite_commit_adddummy $refname, $obj, $rewrite; - } } elsif ($type eq 'tag') { $rewrite = rewrite_tag($obj); } else { warn "ref $refname refers to $type\n"; next; } - next if $rewrite eq $obj; push @updates, [ $refname, $obj, $rewrite ]; } -our $worktree; +filter_updates(); #print Dumper(\@updates);