summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-07-06 21:17:18 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-07-06 21:29:22 +0100
commit0899e14ec8d3eb877f4190882c5c3e92d02c460b (patch)
tree65765da124d2d77ef5aa1670c2d6939aefbab77f
parent7c3755874bd9192ce777c5271b70174083919ecd (diff)
dgit, git-debrebase: Properly make patches with nasty .gitignores.
Specifically: * When running git status --porcelain, pass --ignored so it lists ignored files, and handle the ! output that it then produces. * Add missing -f to a few git add invocations. I have done some greps ('git.*add', 'git.*status', 'porcelain', etc.) to try to find other missed cases and none turned up. git diff is OK because normally we pass two treeish arguments, in which case the ignores are ignored by git diff. When we are asking it to look at the working tree, we are expecting it to ignore untracked files (whether ignored or not), and diff tracked ones, which is what it does. Closes:#903130. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r--debian/changelog2
-rwxr-xr-xdgit6
-rwxr-xr-xgit-debrebase2
3 files changed, 6 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog
index 04357f9..375e783 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
dgit (5.8~) unstable; urgency=medium
Bugfixes:
+ * dgit, git-debrebase: Properly make patches even if an awkward
+ .gitignore ignores the things in debian/patches. Closes:#903130.
* dgit(1): Unscramble push[-source] descriptions. Closes:#903116.
--
diff --git a/dgit b/dgit
index 3a737d0..0d36361 100755
--- a/dgit
+++ b/dgit
@@ -3812,11 +3812,11 @@ sub quiltify_nofix_bail ($$) {
}
sub commit_quilty_patch () {
- my $output = cmdoutput @git, qw(status --porcelain);
+ my $output = cmdoutput @git, qw(status --ignored --porcelain);
my %adds;
foreach my $l (split /\n/, $output) {
next unless $l =~ m/\S/;
- if ($l =~ m{^(?:\?\?| [MADRC]) (.pc|debian/patches)}) {
+ if ($l =~ m{^(?:[?!][?!]| [MADRC]) (.pc|debian/patches)}) {
$adds{$1}++;
}
}
@@ -5318,7 +5318,7 @@ END
print SERIES "\n" or die $! unless $newline eq "\n";
print SERIES "auto-gitignore\n" or die $!;
close SERIES or die $!;
- runcmd @git, qw(add -- debian/patches/series), $gipatch;
+ runcmd @git, qw(add -f -- debian/patches/series), $gipatch;
commit_admin <<END
Commit patch to update .gitignore
diff --git a/git-debrebase b/git-debrebase
index 658884d..04befff 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -1504,7 +1504,7 @@ sub make_patches_staged ($) {
{ local ($!,$?); copy('../gbp-pq-err', \*STDERR); }
failedcmd @gbp_cmd;
}
- runcmd @git, qw(add debian/patches);
+ runcmd @git, qw(add -f debian/patches);
};
}