git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 04/10] Migrate git-clone to use git-rev-parse --parseopt

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 6, 2007, 19:32 UTC
Message-ID
<7vr6j3gof2.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.LFD.0.9999.0711061355330.21255@xanadu.home>
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 },
Previous: Nicolas PitreNext: Nicolas Pitre
Message 14 of 20 in “ph/parseopt-sh reloaded”
  1. Pierre HabouzitNov 4, 2007
  2. 01/10 Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.Pierre Habouzit, Nov 4, 2007
  3. 02/10 Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  4. 03/10 Migrate git-clean.sh to use git-rev-parse --parseopt.Pierre Habouzit, Nov 4, 2007
  5. 04/10 Migrate git-clone to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  6. 05/10 Migrate git-am.sh to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  7. 06/10 Migrate git-merge.sh to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  8. 07/10 Migrate git-instaweb.sh to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  9. 08/10 Migrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdashPierre Habouzit, Nov 4, 2007
  10. 09/10 Migrate git-quiltimport.sh to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  11. 10/10 Migrate git-repack.sh to use git-rev-parse --parseoptPierre Habouzit, Nov 4, 2007
  12. Pierre HabouzitNov 4, 2007
  13. Nicolas PitreNov 6, 2007
  14. Junio C HamanoNov 6, 2007
  15. Nicolas PitreNov 6, 2007
  16. Junio C HamanoNov 6, 2007
  17. Ralf WildenhuesNov 4, 2007
  18. Ralf WildenhuesNov 4, 2007
  19. Junio C HamanoNov 4, 2007
  20. Pierre HabouzitNov 4, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.