X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit-badcommit-fixup;h=08b6e3766f2c8c51672a235eda4e339eafbd3c6e;hp=4573121076bac4ee3b094d9a0b04b9d7fa3e2605;hb=7e4b51864b864f89089828d9a53b042a7f810177;hpb=91e2737f7ffeb765d291b6d886626331725f31cd diff --git a/dgit-badcommit-fixup b/dgit-badcommit-fixup index 45731210..08b6e376 100755 --- a/dgit-badcommit-fixup +++ b/dgit-badcommit-fixup @@ -1,8 +1,10 @@ #!/usr/bin/perl -w - +# +# Script to help with fallout from #849041. +# # usage: -# .../badcommit-fixup --test -# .../badcommit-fixup --real +# dgit-badcommit-fixup --test +# dgit-badcommit-fixup --real use strict; @@ -102,72 +104,6 @@ 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}++; - - return $new; -} - sub rewrite_tag ($) { my ($obj) = @_; $_ = getobj $obj, 'tag'; @@ -202,10 +138,6 @@ 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 {