transport.c: extract 'fill_alternate_refs_command'
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>
This commit is contained in:

committed by
Junio C Hamano

parent
bdf4276c91
commit
1e5f31d444
18
transport.c
18
transport.c
@ -1325,6 +1325,17 @@ literal_copy:
|
|||||||
return xstrdup(url);
|
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,
|
static void read_alternate_refs(const char *path,
|
||||||
alternate_ref_fn *cb,
|
alternate_ref_fn *cb,
|
||||||
void *data)
|
void *data)
|
||||||
@ -1333,12 +1344,7 @@ static void read_alternate_refs(const char *path,
|
|||||||
struct strbuf line = STRBUF_INIT;
|
struct strbuf line = STRBUF_INIT;
|
||||||
FILE *fh;
|
FILE *fh;
|
||||||
|
|
||||||
cmd.git_cmd = 1;
|
fill_alternate_refs_command(&cmd, path);
|
||||||
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;
|
|
||||||
|
|
||||||
if (start_command(&cmd))
|
if (start_command(&cmd))
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user