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

[PATCH v2] remote-testsvn: use internal argv_array of struct child_process in cmd_import()

From
René Scharfe <l.s.r@web.de>
Date
Jul 18, 2014, 19:55 UTC
Message-ID
<53C97BA4.7020503@web.de>
In-Reply-To
<53C975C5.8020709@web.de>

Use the existing argv_array member instead of providing our own. This way we don't have to initialize or clean it up explicitly. Because of that automatic cleanup, we need to keep our own reference to the command name instead of using .argv[0] to print the warning at the end.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
The added command pointer makes the patch more complicated, but I think
it still counts as a cleanup.
 remote-testsvn.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/remote-testsvn.c b/remote-testsvn.c
index 6be55cb..e3ad11b 100644
--- a/remote-testsvn.c
+++ b/remote-testsvn.c
@@ -175,8 +175,8 @@ static int cmd_import(const char *line)
 	char *note_msg;
 	unsigned char head_sha1[20];
 	unsigned int startrev;
-	struct argv_array svndump_argv = ARGV_ARRAY_INIT;
 	struct child_process svndump_proc;
+	const char *command;
 
 	if (read_ref(private_ref, head_sha1))
 		startrev = 0;
@@ -200,17 +200,17 @@ static int cmd_import(const char *line)
 		if(dumpin_fd < 0)
 			die_errno("Couldn't open svn dump file %s.", url);
 	} else {
+		command = "svnrdump";
 		memset(&svndump_proc, 0, sizeof(struct child_process));
 		svndump_proc.out = -1;
-		argv_array_push(&svndump_argv, "svnrdump");
-		argv_array_push(&svndump_argv, "dump");
-		argv_array_push(&svndump_argv, url);
-		argv_array_pushf(&svndump_argv, "-r%u:HEAD", startrev);
-		svndump_proc.argv = svndump_argv.argv;
+		argv_array_push(&svndump_proc.args, command);
+		argv_array_push(&svndump_proc.args, "dump");
+		argv_array_push(&svndump_proc.args, url);
+		argv_array_pushf(&svndump_proc.args, "-r%u:HEAD", startrev);
 
 		code = start_command(&svndump_proc);
 		if (code)
-			die("Unable to start %s, code %d", svndump_proc.argv[0], code);
+			die("Unable to start %s, code %d", command, code);
 		dumpin_fd = svndump_proc.out;
 	}
 	/* setup marks file import/export */
@@ -226,8 +226,7 @@ static int cmd_import(const char *line)
 	if (!dump_from_file) {
 		code = finish_command(&svndump_proc);
 		if (code)
-			warning("%s, returned %d", svndump_proc.argv[0], code);
-		argv_array_clear(&svndump_argv);
+			warning("%s, returned %d", command, code);
 	}
 
 	return 0;
-- 
2.0.2
Previous: René ScharfeNext: Junio C Hamano
Message 4 of 6 in “remote-testsvn: use internal argv_array of struct child_process in cmd_import()”
  1. remote-testsvn: use internal argv_array of struct child_process in cmd_import()René Scharfe, Jul 18, 2014
  2. Junio C HamanoJul 18, 2014
  3. René ScharfeJul 18, 2014
  4. remote-testsvn: use internal argv_array of struct child_process in cmd_import()René Scharfe, Jul 18, 2014
  5. Junio C HamanoJul 18, 2014
  6. René ScharfeJul 18, 2014

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.