When git-commit is seeing the -l|--list option, it stops reading the following command line options. So although they should be the same, the following commands act differently: git config --file ../repo2/.git/config -l git config -l --file ../repo2/.git/config This patch delays the 'list all variables' to after the command line options have been processed. The problem was noticed by Joey Hess, reported through http://bugs.debian.org/445208 Signed-off-by: Gerrit Pape <pape@xxxxxxxxxxx> --- builtin-config.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/builtin-config.c b/builtin-config.c index c2708ba..1bb0ebb 100644 --- a/builtin-config.c +++ b/builtin-config.c @@ -8,6 +8,7 @@ static char *key; static regex_t *key_regexp; static regex_t *regexp; static int show_keys; +static int show_all; static int use_key_regexp; static int do_all; static int do_not_match; @@ -173,7 +174,7 @@ int cmd_config(int argc, const char **argv, const char *prefix) else if (!strcmp(argv[1], "--bool")) type = T_BOOL; else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l")) - return git_config(show_all_config); + show_all = 1; else if (!strcmp(argv[1], "--global")) { char *home = getenv("HOME"); if (home) { @@ -234,6 +235,8 @@ int cmd_config(int argc, const char **argv, const char *prefix) argv++; } + if (show_all) + return git_config(show_all_config); switch (argc) { case 2: return get_value(argv[1], NULL); -- 1.5.3.4 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html