From: Ian Jackson Date: Fri, 13 Jan 2017 13:50:15 +0000 (+0000) Subject: dgit: Option parsing: Fix undefined $suite in some import-dsc. X-Git-Tag: archive/debian/3.3~20 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=6516b26b1e24241f879b9bde6533d1c8a384c803;hp=94aff6a7288630849c0aaebe2a55ae7a68fe1932 dgit: Option parsing: Fix undefined $suite in some import-dsc. * Set $isuite to a dummy value. In import-dsc we aren't operating on a suite. We have to set it to something (because the config likes to look at the suite) and this avoids picking up information relating to the default suite. * Set $idistro (if -d not supplied) to the distro from (or implied by) the .dsc. This is needed so that we do not use any config from the default distro. In particular, the default commands (like what `git' command to use to access the dgit git server) need to be found via the dsc's distro's cmd-git setting, and this is done by parseopts_late_defaults() in pushing(). So we must set $idistro before then. * Move notpushing earlier, so that we call it before we call resolve_dsc_field_commit(). (It doesn't matter there for $idistro, because it sets that itself, but the git command does.) Closes:#851213. Signed-off-by: Ian Jackson --- diff --git a/debian/changelog b/debian/changelog index 4d0b59ae..04328fe5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ dgit (3.3~) unstable; urgency=medium * dgit: Remove a leftover debugging print. * dgit: Set default dsc import distro when there is no Dgit field. * dgit: Set default dsc import distro when suppressing Dgit field. + * dgit: Option parsing: Fix undefined $suite in some import-dsc. + Closes:#851213. Packaging: * Remove redundant Recommends on libtext-iconv-perl. diff --git a/dgit b/dgit index f4a470d9..4b088dbc 100755 --- a/dgit +++ b/dgit @@ -6119,6 +6119,11 @@ sub cmd_import_dsc { unless forceing [qw(import-dsc-with-dgit-field)]; parse_dsc_field_def_dsc_distro(); + $isuite = 'DGIT-IMPORT-DSC'; + $idistro //= $dsc_distro; + + notpushing(); + if (defined $dsc_hash) { progress "dgit: import-dsc of .dsc with Dgit field, using git hash"; resolve_dsc_field_commit undef, undef; @@ -6155,8 +6160,6 @@ Specify +$specbranch to overwrite, discarding existing history END if $oldhash && !$force; - notpushing(); - my @dfi = dsc_files_info(); foreach my $fi (@dfi) { my $f = $fi->{Filename};