diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2020-05-11 11:56:10 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-05-11 09:33:56 -0700 |
commit | 891c17c95497712126700cdf5cd887bdb0ff3d55 (patch) | |
tree | 4e981805e8c80cb2ccde7c361694333be045c96e /bloom.c | |
parent | 54c337be9c8ad47b49709a43b4c63f407ff168e6 (diff) | |
download | git-891c17c95497712126700cdf5cd887bdb0ff3d55.tar.gz |
bloom: parse commit before computing filters
When computing changed-path Bloom filters for a commit, we need to
know if the commit has a parent or not. If the commit is not parsed,
then its parent pointer will be NULL.
As far as I can tell, the only opportunity to reach this code
without parsing the commit is inside "test-tool bloom
get_filter_for_commit" but it is best to be safe.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'bloom.c')
-rw-r--r-- | bloom.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -193,6 +193,9 @@ struct bloom_filter *get_bloom_filter(struct repository *r, diffopt.max_changes = max_changes; diff_setup_done(&diffopt); + /* ensure commit is parsed so we have parent information */ + repo_parse_commit(r, c); + if (c->parents) diff_tree_oid(&c->parents->item->object.oid, &c->object.oid, "", &diffopt); else |