cache-tree: fix writing cache-tree when CE_REMOVE is present
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sun, 16 Dec 2012 04:15:27 +0000 (11:15 +0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Dec 2012 07:04:22 +0000 (23:04 -0800)
commit3cf773e4264ecc6e9f603a24aeb72cc68b372f96
tree57b0419f8c3b6e607da7092711dfd5fde9fbe3fe
parent386cc8b031611497186a8c89be0f980a54786525
cache-tree: fix writing cache-tree when CE_REMOVE is present

entry_count is used in update_one() for two purposes:

1. to skip through the number of processed entries in in-memory index
2. to record the number of entries this cache-tree covers on disk

Unfortunately when CE_REMOVE is present these numbers are not the same
because CE_REMOVE entries are automatically removed before writing to
disk but entry_count is not adjusted and still counts CE_REMOVE
entries.

Separate the two use cases into two different variables. #1 is taken
care by the new field count in struct cache_tree_sub and entry_count
is prepared for #2.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache-tree.c
cache-tree.h