Gaah. I'd blame Linus for suggesting to make parseopt part of rev-parse, the latter of which makes sense only inside git while the former of which makes sense outside git. Would something like this help? --- builtin-rev-parse.c | 4 ++-- git.c | 2 +- 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 6c5f9af..204a6f7 100644 --- a/git.c +++ b/git.c @@ -340,7 +340,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 }, { "runstatus", cmd_runstatus, RUN_SETUP | NEED_WORK_TREE }, - 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