diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2018-04-06 21:09:32 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-11 03:47:16 +0200 |
commit | 891435d55da80ca3654b19834481205be6bdfe33 (patch) | |
tree | fddc1768c14c6567f7be5205bf808d8bae86981a /sequencer.c | |
parent | Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees (diff) | |
download | git-891435d55da80ca3654b19834481205be6bdfe33.tar.xz git-891435d55da80ca3654b19834481205be6bdfe33.zip |
treewide: rename tree to maybe_tree
Using the commit-graph file to walk commit history removes the large
cost of parsing commits during the walk. This exposes a performance
issue: lookup_tree() takes a large portion of the computation time,
even when Git never uses those trees.
In anticipation of lazy-loading these trees, rename the 'tree' member
of struct commit to 'maybe_tree'. This serves two purposes: it hints
at the future role of possibly being NULL even if the commit has a
valid tree, and it allows for unambiguous transformation from simple
member access (i.e. commit->maybe_tree) to method access.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sequencer.c')
-rw-r--r-- | sequencer.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sequencer.c b/sequencer.c index 6ca4499d23..9269607a48 100644 --- a/sequencer.c +++ b/sequencer.c @@ -501,8 +501,8 @@ static int do_recursive_merge(struct commit *base, struct commit *next, o.show_rename_progress = 1; head_tree = parse_tree_indirect(head); - next_tree = next ? next->tree : empty_tree(); - base_tree = base ? base->tree : empty_tree(); + next_tree = next ? next->maybe_tree : empty_tree(); + base_tree = base ? base->maybe_tree : empty_tree(); for (xopt = opts->xopts; xopt != opts->xopts + opts->xopts_nr; xopt++) parse_merge_opt(&o, *xopt); @@ -562,7 +562,7 @@ static int is_index_unchanged(void) return error(_("unable to update cache tree")); return !oidcmp(&active_cache_tree->oid, - &head_commit->tree->object.oid); + &head_commit->maybe_tree->object.oid); } static int write_author_script(const char *message) @@ -1119,7 +1119,7 @@ static int try_to_commit(struct strbuf *msg, const char *author, } if (!(flags & ALLOW_EMPTY) && !oidcmp(current_head ? - ¤t_head->tree->object.oid : + ¤t_head->maybe_tree->object.oid : &empty_tree_oid, &tree)) { res = 1; /* run 'git commit' to display error message */ goto out; @@ -1217,12 +1217,12 @@ static int is_original_commit_empty(struct commit *commit) if (parse_commit(parent)) return error(_("could not parse parent commit %s"), oid_to_hex(&parent->object.oid)); - ptree_oid = &parent->tree->object.oid; + ptree_oid = &parent->maybe_tree->object.oid; } else { ptree_oid = the_hash_algo->empty_tree; /* commit is root */ } - return !oidcmp(ptree_oid, &commit->tree->object.oid); + return !oidcmp(ptree_oid, &commit->maybe_tree->object.oid); } /* |