summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rwxr-xr-xdgit-badcommit-fixup11
2 files changed, 14 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index efb9c5b..7d84c7b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,8 @@
dgit (2.17~) unstable; urgency=medium
+ dgit-badcommit-fixup:
+ * Do not investigate symrefs. Closes:#850547.
+
Test suite:
* Internal improvements.
* badcommit-rewrite: Fix operation using installed version of fixup.
diff --git a/dgit-badcommit-fixup b/dgit-badcommit-fixup
index 0a1ebcf..8b202c0 100755
--- a/dgit-badcommit-fixup
+++ b/dgit-badcommit-fixup
@@ -234,6 +234,17 @@ foreach my $rline (split /\n/, $refs) {
next;
}
next if $refname =~ m{^refs/dgit-(?:badcommit|badfixuptest)/};
+
+ $!=0; $?=0;
+ system qw(sh -ec),
+ 'exec >/dev/null git symbolic-ref -q "$1"', qw(x),
+ $refname;
+ if ($?==0) {
+ $count{symrefs_ignored}++;
+ next;
+ }
+ die "$? $!" unless $?==256;
+
my $rewrite;
if ($type eq 'commit') {
$rewrite = rewrite_commit($obj);