int set_git_dir(const char *path) { if (setenv(GIT_DIR_ENVIRONMENT, path, 1)) return error("Could not set GIT_DIR to '%s'", path); setup_git_env(); return 0; }
static void test_get_commit_tree_in_graph(const char *gitdir, const char *worktree, const struct object_id *commit_oid) { struct repository r; struct commit *c; struct tree *tree; setup_git_env(gitdir); if (repo_init(&r, gitdir, worktree)) die("Couldn't init repo"); c = lookup_commit(&r, commit_oid); /* * get_commit_tree_in_graph does not automatically parse the commit, so * parse it first. */ if (!parse_commit_in_graph(&r, c)) die("Couldn't parse commit"); tree = get_commit_tree_in_graph(&r, c); if (!tree) die("Couldn't get commit tree"); printf("%s\n", oid_to_hex(&tree->object.oid)); repo_clear(&r); }
static void test_parse_commit_in_graph(const char *gitdir, const char *worktree, const struct object_id *commit_oid) { struct repository r; struct commit *c; struct commit_list *parent; setup_git_env(gitdir); if (repo_init(&r, gitdir, worktree)) die("Couldn't init repo"); c = lookup_commit(&r, commit_oid); if (!parse_commit_in_graph(&r, c)) die("Couldn't parse commit"); printf("%"PRItime, c->date); for (parent = c->parents; parent; parent = parent->next) printf(" %s", oid_to_hex(&parent->item->object.oid)); printf("\n"); repo_clear(&r); }
char *get_object_directory(void) { if (!git_object_dir) setup_git_env(); return git_object_dir; }
const char *get_git_dir(void) { if (!git_dir) setup_git_env(); return git_dir; }
char *get_graft_file(void) { if (!git_graft_file) setup_git_env(); return git_graft_file; }
char *get_index_file(void) { if (!git_index_file) setup_git_env(); return git_index_file; }