]> git.ipfire.org Git - thirdparty/git.git/commitdiff
transport.c: extract 'fill_alternate_refs_command'
authorTaylor Blau <me@ttaylorr.com>
Mon, 8 Oct 2018 18:09:26 +0000 (11:09 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Oct 2018 05:30:03 +0000 (14:30 +0900)
To list alternate references, 'read_alternate_refs' creates a child
process running 'git for-each-ref' in the alternate's Git directory.

Prepare to run other commands besides 'git for-each-ref' by introducing
and moving the relevant code from 'read_alternate_refs' to
'fill_alternate_refs_command'.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport.c

index 1ae297349c4413b4f06cb21c319bf3ee008e0850..25d8ea7fe5cd5c7048c4e6549e19b8336d877ac0 100644 (file)
@@ -1325,6 +1325,17 @@ literal_copy:
        return xstrdup(url);
 }
 
+static void fill_alternate_refs_command(struct child_process *cmd,
+                                       const char *repo_path)
+{
+       cmd->git_cmd = 1;
+       argv_array_pushf(&cmd->args, "--git-dir=%s", repo_path);
+       argv_array_push(&cmd->args, "for-each-ref");
+       argv_array_push(&cmd->args, "--format=%(objectname)");
+       cmd->env = local_repo_env;
+       cmd->out = -1;
+}
+
 static void read_alternate_refs(const char *path,
                                alternate_ref_fn *cb,
                                void *data)
@@ -1333,12 +1344,7 @@ static void read_alternate_refs(const char *path,
        struct strbuf line = STRBUF_INIT;
        FILE *fh;
 
-       cmd.git_cmd = 1;
-       argv_array_pushf(&cmd.args, "--git-dir=%s", path);
-       argv_array_push(&cmd.args, "for-each-ref");
-       argv_array_push(&cmd.args, "--format=%(objectname)");
-       cmd.env = local_repo_env;
-       cmd.out = -1;
+       fill_alternate_refs_command(&cmd, path);
 
        if (start_command(&cmd))
                return;