Merge branch 'ds/commit-graph-with-grafts'

The recently introduced commit-graph auxiliary data is incompatible
with mechanisms such as replace & grafts that "breaks" immutable
nature of the object reference relationship.  Disable optimizations
based on its use (and updating existing commit-graph) when these
incompatible features are in use in the repository.

* ds/commit-graph-with-grafts:
  commit-graph: close_commit_graph before shallow walk
  commit-graph: not compatible with uninitialized repo
  commit-graph: not compatible with grafts
  commit-graph: not compatible with replace objects
  test-repository: properly init repo
  commit-graph: update design document
  refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
  refs.c: migrate internal ref iteration to pass thru repository argument
This commit is contained in:
Junio C Hamano
2018-10-16 16:15:59 +09:00
16 changed files with 196 additions and 32 deletions

View File

@ -15,7 +15,10 @@ static void test_parse_commit_in_graph(const char *gitdir, const char *worktree,
struct commit *c;
struct commit_list *parent;
repo_init(&r, gitdir, worktree);
setup_git_env(gitdir);
if (repo_init(&r, gitdir, worktree))
die("Couldn't init repo");
c = lookup_commit(&r, commit_oid);
@ -38,7 +41,10 @@ static void test_get_commit_tree_in_graph(const char *gitdir,
struct commit *c;
struct tree *tree;
repo_init(&r, gitdir, worktree);
setup_git_env(gitdir);
if (repo_init(&r, gitdir, worktree))
die("Couldn't init repo");
c = lookup_commit(&r, commit_oid);