summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-06-28 16:39:59 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-07-08 18:53:59 +0100
commit3c25f09fe6a6787011c2a16e12e54da264a881e0 (patch)
tree9c8bea361216d1007f82cb29e5b34e6d97935711
parent8efcda8d67ec2934f259e4ce951570fef8f37a34 (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>
-rwxr-xr-xdgit3
1 files changed, 2 insertions, 1 deletions
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->();