X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=0ae84b2869b4c127876ed989d223ab6a9402c757;hp=88bd431ab37e277bcd273079a2f6fc42078e3030;hb=194f799def5d74fba6f7e035372b2f4e01aa6ec7;hpb=81a31ed44401d58cff028c12db896fa3badfd4ee diff --git a/dgit b/dgit index 88bd431a..0ae84b28 100755 --- a/dgit +++ b/dgit @@ -142,7 +142,6 @@ our %opts_cfg_insertpos = map { scalar @{ $opts_opt_map{$_} } } keys %opts_opt_map; -sub finalise_opts_opts(); sub parseopts_late_defaults(); our $keyid; @@ -792,11 +791,11 @@ sub pushing () { Push failed, before we got started. You can retry the push, after fixing the problem, if you like. END - finalise_opts_opts(); + parseopts_late_defaults(); } sub notpushing () { - finalise_opts_opts(); + parseopts_late_defaults(); } sub supplementary_message ($) { @@ -4132,7 +4131,6 @@ sub branchsuite () { } sub fetchpullargs () { - notpushing(); if (!defined $package) { my $sourcep = parsecontrol('debian/control','debian/control'); $package = getfield $sourcep, 'Source'; @@ -4148,6 +4146,7 @@ sub fetchpullargs () { } else { badusage "incorrect arguments to dgit fetch or dgit pull"; } + notpushing(); } sub cmd_fetch { @@ -6265,7 +6264,7 @@ END } -sub finalise_opts_opts () { +sub parseopts_late_defaults () { foreach my $k (keys %opts_opt_map) { my $om = $opts_opt_map{$k}; @@ -6293,32 +6292,6 @@ sub finalise_opts_opts () { } } - parseopts_late_defaults(); -} - -if ($ENV{$fakeeditorenv}) { - git_slurp_config(); - quilt_fixup_editor(); -} - -parseopts(); -check_env_sanity(); -git_slurp_config(); - -print STDERR "DRY RUN ONLY\n" if $dryrun_level > 1; -print STDERR "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n" - if $dryrun_level == 1; -if (!@ARGV) { - print STDERR $helpmsg or die $!; - exit 8; -} -my $cmd = shift @ARGV; -$cmd =~ y/-/_/; - -my $pre_fn = ${*::}{"pre_$cmd"}; -$pre_fn->() if $pre_fn; - -sub parseopts_late_defaults () { if (!defined $rmchanges) { local $access_forpush; $rmchanges = access_cfg_bool(0, 'rm-old-changes'); @@ -6354,6 +6327,28 @@ sub parseopts_late_defaults () { } } +if ($ENV{$fakeeditorenv}) { + git_slurp_config(); + quilt_fixup_editor(); +} + +parseopts(); +check_env_sanity(); +git_slurp_config(); + +print STDERR "DRY RUN ONLY\n" if $dryrun_level > 1; +print STDERR "DAMP RUN - WILL MAKE LOCAL (UNSIGNED) CHANGES\n" + if $dryrun_level == 1; +if (!@ARGV) { + print STDERR $helpmsg or die $!; + exit 8; +} +my $cmd = shift @ARGV; +$cmd =~ y/-/_/; + +my $pre_fn = ${*::}{"pre_$cmd"}; +$pre_fn->() if $pre_fn; + my $fn = ${*::}{"cmd_$cmd"}; $fn or badusage "unknown operation $cmd"; $fn->();