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

[PATCH 5/6] archive: allow --exec and --remote without equal sign

From
Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Date
Jul 25, 2008, 10:41 UTC
Message-ID
<1216982486-5887-5-git-send-email-rene.scharfe@lsrfire.ath.cx>
In-Reply-To
<1216982486-5887-4-git-send-email-rene.scharfe@lsrfire.ath.cx>

Allow "--remote repo" and "--exec cmd" in addition to "--remote=repo" and "--exec=cmd" to make their usage consistent with parameters handled by parse_options().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
---
 builtin-archive.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/builtin-archive.c b/builtin-archive.c
index 4dd2716..22445ac 100644
--- a/builtin-archive.c
+++ b/builtin-archive.c
@@ -15,7 +15,7 @@ static int run_remote_archiver(const char *remote, int argc,
 	int fd[2], i, len, rv;
 	struct child_process *conn;
 	const char *exec = "git-upload-archive";
-	int exec_at = 0;
+	int exec_at = 0, exec_value_at = 0;
 
 	for (i = 1; i < argc; i++) {
 		const char *arg = argv[i];
@@ -24,7 +24,14 @@ static int run_remote_archiver(const char *remote, int argc,
 				die("multiple --exec specified");
 			exec = arg + 7;
 			exec_at = i;
-			break;
+		} else if (!strcmp(arg, "--exec")) {
+			if (exec_at)
+				die("multiple --exec specified");
+			if (i + 1 >= argc)
+				die("option --exec requires a value");
+			exec = argv[i + 1];
+			exec_at = i;
+			exec_value_at = ++i;
 		}
 	}
 
@@ -32,7 +39,7 @@ static int run_remote_archiver(const char *remote, int argc,
 	conn = git_connect(fd, url, exec, 0);
 
 	for (i = 1; i < argc; i++) {
-		if (i == exec_at)
+		if (i == exec_at || i == exec_value_at)
 			continue;
 		packet_write(fd[1], "argument %s\n", argv[i]);
 	}
@@ -78,6 +85,13 @@ static const char *extract_remote_arg(int *ac, const char **av)
 					die("Multiple --remote specified");
 				remote = arg + 9;
 				continue;
+			} else if (!strcmp(arg, "--remote")) {
+				if (remote)
+					die("Multiple --remote specified");
+				if (++ix >= cnt)
+					die("option --remote requires a value");
+				remote = av[ix];
+				continue;
 			}
 			if (arg[0] != '-')
 				no_more_options = 1;
-- 
1.6.0.rc0.42.g186458
Previous: Rene ScharfeNext: Rene Scharfe
Message 5 of 10 in “archive: add write_archive()”
  1. 1/6 archive: add write_archive()Rene Scharfe, Jul 25, 2008
  2. 2/6 archive: move parameter parsing code to archive.cRene Scharfe, Jul 25, 2008
  3. 3/6 archive: define MAX_ARGS where it's neededRene Scharfe, Jul 25, 2008
  4. 4/6 archive: declare struct archiver where it's neededRene Scharfe, Jul 25, 2008
  5. 5/6 archive: allow --exec and --remote without equal signRene Scharfe, Jul 25, 2008
  6. 5/6 archive: allow --exec and --remote without equal signRene Scharfe, Jul 25, 2008
  7. René ScharfeJul 25, 2008
  8. Junio C HamanoJul 26, 2008
  9. René ScharfeJul 26, 2008
  10. Junio C HamanoJul 26, 2008

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.