summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-11-06 20:23:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-11-06 20:23:14 (GMT)
commit5410a02ab9e6a1987147724f8ea65e6a077b3832 (patch)
treee21b1a63136ab205c8796b0a560dacc475d085a5
parent8f321a39257a06db014a3b6ae5dce839821cdb16 (diff)
downloadgit-5410a02ab9e6a1987147724f8ea65e6a077b3832.zip
git-5410a02ab9e6a1987147724f8ea65e6a077b3832.tar.gz
git-5410a02ab9e6a1987147724f8ea65e6a077b3832.tar.bz2
git-rev-parse --parseopt
The "parseopt mode" of git-rev-parse does not need to be run inside a git repository, although the normal mode does. Most notabily, lack of this fix breaks git-clone script, as noticed by Nico. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-rev-parse.c4
-rw-r--r--git.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
index 054519b..d1038a0 100644
--- a/builtin-rev-parse.c
+++ b/builtin-rev-parse.c
@@ -337,11 +337,11 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
int i, as_is = 0, verify = 0;
unsigned char sha1[20];
- git_config(git_default_config);
-
if (argc > 1 && !strcmp("--parseopt", argv[1]))
return cmd_parseopt(argc - 1, argv + 1, prefix);
+ prefix = setup_git_directory();
+ git_config(git_default_config);
for (i = 1; i < argc; i++) {
const char *arg = argv[i];
diff --git a/git.c b/git.c
index 4e10581..b843da4 100644
--- a/git.c
+++ b/git.c
@@ -343,7 +343,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "rerere", cmd_rerere, RUN_SETUP },
{ "reset", cmd_reset, RUN_SETUP },
{ "rev-list", cmd_rev_list, RUN_SETUP },
- { "rev-parse", cmd_rev_parse, RUN_SETUP },
+ { "rev-parse", cmd_rev_parse },
{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
{ "rm", cmd_rm, RUN_SETUP | NEED_WORK_TREE },
{ "runstatus", cmd_runstatus, RUN_SETUP | NEED_WORK_TREE },