static void fill_alternate_refs_command(struct child_process *cmd, const char *repo_path) { const char *value; if (!git_config_get_value("core.alternateRefsCommand", &value)) { cmd->use_shell = 1; argv_array_push(&cmd->args, value); argv_array_push(&cmd->args, repo_path); } else { 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)"); if (!git_config_get_value("core.alternateRefsPrefixes", &value)) { argv_array_push(&cmd->args, "--"); argv_array_split(&cmd->args, value); } } cmd->env = local_repo_env; cmd->out = -1; }
static int convert_graft_file(int force) { const char *graft_file = get_graft_file(); FILE *fp = fopen_or_warn(graft_file, "r"); struct strbuf buf = STRBUF_INIT, err = STRBUF_INIT; struct argv_array args = ARGV_ARRAY_INIT; if (!fp) return -1; while (strbuf_getline(&buf, fp) != EOF) { if (*buf.buf == '#') continue; argv_array_split(&args, buf.buf); if (args.argc && create_graft(args.argc, args.argv, force, 1)) strbuf_addf(&err, "\n\t%s", buf.buf); argv_array_clear(&args); } fclose(fp); strbuf_release(&buf); if (!err.len) return unlink_or_warn(graft_file); warning(_("could not convert the following graft(s):\n%s"), err.buf); strbuf_release(&err); return -1; }