archive: reorder option parsing and config reading
authorJeff King <peff@peff.net>
Wed, 15 Jun 2011 22:31:28 +0000 (18:31 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Jun 2011 22:56:28 +0000 (15:56 -0700)
commit2321286298bf956a3fa8e91dd361b8cf4e81e6a0
tree8879ff6c7d193e9ea5760bff2f32bdd2444890f5
parent2c162b56f370f5c33e6a945e6922d598006c5ec4
archive: reorder option parsing and config reading

The archive command does three things during its
initialization phase:

  1. parse command-line options

  2. setup the git directory

  3. read config

During phase (1), if we see any options that do not require
a git directory (like "--list"), we handle them immediately
and exit, making it safe to abort step (2) if we are not in
a git directory.

Step (3) must come after step (2), since the git directory
may influence configuration.  However, this leaves no
possibility of configuration from step (3) impacting the
command-line options in step (1) (which is useful, for
example, for supporting user-configurable output formats).

Instead, let's reorder this to:

  1. setup the git directory, if it exists

  2. read config

  3. parse command-line options

  4. if we are not in a git repository, die

This should have the same external behavior, but puts
configuration before command-line parsing.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
archive.c