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

[PATCH] builtins: setup repository before print unknown command error

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Mar 27, 2010, 09:13 UTC
Message-ID
<1269681184-1992-1-git-send-email-pclouds@gmail.com>

help_unknown_cmd() will need to look into repository's config, in order to collect all possible commands/aliases and give a suggestion. So, repository must be set up before this function is called.

As it is now, because
 - alias handling will always be done before help_unknown_cmd()
 - alias handling code will search and set up repository if found
 - alias handline code will not undo repository setup

These ensure that repository will always be set up (or attempted to set up) before help_unknown_cmd(), so there is no issue. But the setup dependency here is subtle. It may break some day if someone reorders the loop, for example.

Make a note about this.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 git.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/git.c b/git.c
index bd1d4bb..7ebfea5 100644
--- a/git.c
+++ b/git.c
@@ -547,6 +547,13 @@ int main(int argc, const char **argv)
 			exit(1);
 		}
 		if (!done_help) {
+			/*
+			 * help_unknown_cmd() requires that a repository has been
+			 * searched for and set up if found.
+			 * Luckily, the alias handling code already took care of this.
+			 */
+			if (!startup_info->have_run_setup_gitdir)
+				die("internal error: handling unknown command");
 			cmd = argv[0] = help_unknown_cmd(cmd);
 			done_help = 1;
 		} else
-- 
1.7.0.rc1.541.g2da82.dirty
Next: Nguyễn Thái Ngọc Duy
Message 1 of 5 in “builtins: setup repository before print unknown command error”
  1. builtins: setup repository before print unknown command errorNguyễn Thái Ngọc Duy, Mar 27, 2010
  2. builtins: reset startup_info->have_run_setup_gitdir when unsetting up repositoryNguyễn Thái Ngọc Duy, Mar 27, 2010
  3. Jonathan NiederMar 27, 2010
  4. Nguyen Thai Ngoc DuyMar 28, 2010
  5. Jonathan NiederMar 28, 2010

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.