From 3c25f09fe6a6787011c2a16e12e54da264a881e0 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 28 Jun 2017 16:39:59 +0100 Subject: dgit: Postpone call to git_slurp_config This is needed to fix #865863: we need to know what our operation is, before we can decide whether to look for --local git config. The code which now runs earlier is: * The messages about $dryrun_level (which is set only by the command line, and not by configuration - verified by searching for $dryrun_level). * Usage failure if @ARGV empty. This is not affected by configuration. (parseopts does the argument parsing and already runs before git_slurp_config.) * Extracting the $cmd from @ARGV. * Calling $pre_fn. There is only one pre_* sub, which is pre_gbp_build. It provides the default for $quilt_mode. $quilt_mode is indeed somewhat entangled with the git config, but this takes place in parseopts_late_defaults, which is called much later. Therefore there is no functional change. Signed-off-by: Ian Jackson --- dgit | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dgit b/dgit index a4c9640..47c8919 100755 --- a/dgit +++ b/dgit @@ -6778,7 +6778,6 @@ if ($ENV{$fakeeditorenv}) { 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" @@ -6793,6 +6792,8 @@ $cmd =~ y/-/_/; my $pre_fn = ${*::}{"pre_$cmd"}; $pre_fn->() if $pre_fn; +git_slurp_config(); + my $fn = ${*::}{"cmd_$cmd"}; $fn or badusage "unknown operation $cmd"; $fn->(); -- cgit v1.2.3