diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2019-06-18 11:14:30 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-06-19 20:46:26 -0700 |
commit | c523035cbd8515d095dc15e9661fd896733bedbc (patch) | |
tree | 8975475cc2db27ad56a35ecae5fbe974b040f607 /commit-graph.h | |
parent | 1771be90c8e4797c2466296d1d570dbfa39d9743 (diff) | |
download | git-c523035cbd8515d095dc15e9661fd896733bedbc.tar.gz |
commit-graph: allow cross-alternate chains
In an environment like a fork network, it is helpful to have a
commit-graph chain that spans both the base repo and the fork repo. The
fork is usually a small set of data on top of the large repo, but
sometimes the fork is much larger. For example, git-for-windows/git has
almost double the number of commits as git/git because it rebases its
commits on every major version update.
To allow cross-alternate commit-graph chains, we need a few pieces:
1. When looking for a graph-{hash}.graph file, check all alternates.
2. When merging commit-graph chains, do not merge across alternates.
3. When writing a new commit-graph chain based on a commit-graph file
in another object directory, do not allow success if the base file
has of the name "commit-graph" instead of
"commit-graphs/graph-{hash}.graph".
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'commit-graph.h')
-rw-r--r-- | commit-graph.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/commit-graph.h b/commit-graph.h index c321834533..802d35254f 100644 --- a/commit-graph.h +++ b/commit-graph.h @@ -48,6 +48,7 @@ struct commit_graph { uint32_t num_commits; struct object_id oid; char *filename; + const char *obj_dir; uint32_t num_commits_in_base; struct commit_graph *base_graph; |