summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rwxr-xr-xdgit28
2 files changed, 28 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 1ab75e1..d362977 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,8 @@ dgit (1.4~~) UNRELEASED; urgency=low
* In --dry-run mode, _do_ actually run dpkg-source --commit so that we
actually do construct the quilt fixup commit; instead, honour
--dry-run by avoiding pulling it back to your HEAD.
+ * Cope properly with `3.0 (quilt)' with single-debian-patch.
+ Closes:#796016.
--
diff --git a/dgit b/dgit
index 352ff8e..eaba82b 100755
--- a/dgit
+++ b/dgit
@@ -2754,8 +2754,7 @@ sub build_maybe_quilt_fixup () {
$upstreamversion =~ s/-[^-]*$//;
if ($fopts->{'single-debian-patch'}) {
- #quilt_fixup_singlepatch($clogp, $headref, $upstreamversion);
- die;
+ quilt_fixup_singlepatch($clogp, $headref, $upstreamversion);
} else {
quilt_fixup_multipatch($clogp, $headref, $upstreamversion);
}
@@ -2791,6 +2790,31 @@ sub quilt_fixup_delete_pc () {
commit_admin "Commit removal of .pc (quilt series tracking data)";
}
+sub quilt_fixup_singlepatch ($$$) {
+ my ($clogp, $headref, $upstreamversion) = @_;
+
+ # dpkg-source --commit generates new patches even if
+ # single-debian-patch is in debian/source/options. In order to
+ # get it to generate debian/patches/debian-changes, it is
+ # necessary to build the source package.
+
+ quilt_fixup_linkorigs($upstreamversion, sub { });
+ quilt_fixup_mkwork($headref);
+
+ rmtree("debian/patches");
+
+ runcmd @dpkgsource, qw(-b .);
+ chdir "..";
+ runcmd @dpkgsource, qw(-x), (srcfn $version, ".dsc");
+ rename srcfn("$upstreamversion", "/debian/patches"),
+ "work/debian/patches";
+
+ chdir "work";
+ commit_quilty_patch();
+
+
+}
+
sub quilt_fixup_multipatch ($$$) {
my ($clogp, $headref, $upstreamversion) = @_;