diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-06-28 16:39:59 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-08 18:53:59 +0100 |
commit | 3c25f09fe6a6787011c2a16e12e54da264a881e0 (patch) | |
tree | 9c8bea361216d1007f82cb29e5b34e6d97935711 /dgit | |
parent | 8efcda8d67ec2934f259e4ce951570fef8f37a34 (diff) |
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 <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-x | dgit | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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->(); |