}
}
-sub quiltify_splitbrain ($$) {
- my ($clogp, $diffbits) = @_;
+sub quiltify_splitbrain ($$$$$) {
+ my ($clogp, $unapplied, $headref, $diffbits, $editedignores) = @_;
if ($quilt_mode !~ m/gbp|dpm/) {
# treat .gitignore just like any other upstream file
$diffbits = { %$diffbits };
!($diffbits->{O2A} & 02)) { # patches do not change .gitignore
quiltify_splitbrain_needed();
progress "creating patch to represent .gitignore changes";
+ ensuredir "debian/patches";
my $gipatch = "debian/patches/auto-gitignore";
open GIPATCH, ">>", "$gipatch" or die "$gipatch: $!";
stat GIPATCH or die "$gipatch: $!";
.gitignore file(s). This patch is autogenerated, to provide these
updates to users of the official Debian archive view of the package.
+[dgit version $our_version]
---
END
- die 'xxx gitignore';
-
+ close GIPATCH or die "$gipatch: $!";
+ runcmd shell_cmd "exec >>$gipatch", @git, qw(diff),
+ $unapplied, $headref, "--", sort keys %$editedignores;
+ open SERIES, "+>>", "debian/patches/series" or die $!;
+ defined seek SERIES, -1, 2 or $!==EINVAL or die $!;
+ my $newline;
+ defined read SERIES, $newline, 1 or die $!;
+ 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;
+ commit_admin "Commit patch to update .gitignore";
}
+
die 'xxx memoisation via git-reflog';
die 'xxx fast forward (should not depend on quilt mode, but will always be needed if we did $split_brain)';
}
# We calculate some guesswork now about what kind of tree this might
# be. This is mostly for error reporting.
+ my %editedignores;
my $diffbits = {
# H = user's HEAD
# O = orig, without patches applied
# A = "applied", ie orig with H's debian/patches applied
- H2O => quiltify_trees_differ($headref, $unapplied, 1),
+ H2O => quiltify_trees_differ($headref, $unapplied, 1,\%editedignores),
H2A => quiltify_trees_differ($headref, $oldtiptree,1),
O2A => quiltify_trees_differ($unapplied,$oldtiptree,1),
};
" --quilt=gbp --quilt=dpm --quilt=unapplied ?";
if ($quilt_mode =~ m/gbp|dpm|unapplied/) {
- quiltify_splitbrain($clogp, $diffbits);
+ quiltify_splitbrain($clogp, $unapplied, $headref,
+ $diffbits, \%editedignores);
return;
}