our $overwrite_version; # undef: not specified; '': check changelog
our $quilt_mode;
our $quilt_upstream_commitish;
-our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck|gbp|dpm|unapplied|baredebian';
+our $quilt_upstream_commitish_used;
+our $quilt_upstream_commitish_message;
+our $quilt_options_re = 'gbp|dpm|baredebian';
+our $quilt_modes_re = "linear|smash|auto|nofix|nocheck|unapplied|$quilt_options_re";
our $splitview_mode;
our $splitview_modes_re = qr{auto|always|never};
our $dodep14tag;
# upstream and debian/ files from HEAD.
read_tree_upstream $quilt_upstream_commitish, 1, $headref;
- my $upsversion = upstreamversion getfield $clogp, 'Version';
+ my $version = getfield $clogp, 'Version';
+ my $upsversion = upstreamversion $version;
my $merge = make_commit
[ $headref, $quilt_upstream_commitish ],
- [ +(f_ <<ENDT, $upsversion), <<ENDU ];
+ [ +(f_ <<ENDT, $upsversion), $quilt_upstream_commitish_message, <<ENDU ];
Combine debian/ with upstream source for %s
ENDT
-[dgit ($our_version) baredebian-merge]
+[dgit ($our_version) baredebian-merge $version $quilt_upstream_commitish_used]
ENDU
runcmd @git, qw(reset -q --hard), $merge;
}
sub clean_tree () {
# We always clean the tree ourselves, rather than leave it to the
# builder (dpkg-source, or soemthing which calls dpkg-source).
+ if ($quilt_mode =~ m/baredebian/ and $cleanmode =~ m/git/) {
+ fail f_ <<END, $quilt_mode, $cleanmode;
+quilt mode %s (generally needs untracked upstream files)
+contradicts clean mode %s (which would delete them)
+END
+ # This is not 100% true: dgit build-source and push-source
+ # (for example) could operate just fine with no upstream
+ # source in the working tree. But it doesn't seem likely that
+ # the user wants dgit to proactively delete such things.
+ # -wn, for example, would produce identical output without
+ # deleting anything from the working tree.
+ }
if ($cleanmode =~ m{^dpkg-source}) {
my @cmd = @dpkgbuildpackage;
push @cmd, qw(-d) if $cleanmode =~ m{^dpkg-source-d};
if do_split_brain() && $includedirty;
if (madformat_wantfixup $format and $quilt_mode =~ m/baredebian$/) {
- my ($dummy, $umessage);
- ($quilt_upstream_commitish, $dummy, $umessage) =
- resolve_upstream_version
+ ($quilt_upstream_commitish, $quilt_upstream_commitish_used,
+ $quilt_upstream_commitish_message)
+ = resolve_upstream_version
$quilt_upstream_commitish, upstreamversion $version;
- progress f_ "dgit: --quilt=%s, %s", $quilt_mode, $umessage;
+ progress f_ "dgit: --quilt=%s, %s", $quilt_mode,
+ $quilt_upstream_commitish_message;
} elsif (defined $quilt_upstream_commitish) {
fail __
"dgit: --upstream-commitish only makes sense with --quilt=baredebian"
push @ropts, $_;
my $cmd = shift @$om;
@$om = ($cmd, grep { $_ ne $2 } @$om);
- } elsif (m/^--(gbp|dpm|baredebian)$/s) {
+ } elsif (m/^--($quilt_options_re)$/s) {
push @ropts, "--quilt=$1";
$quilt_mode = $1;
} elsif (m/^--(?:ignore|include)-dirty$/s) {