diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2012-12-16 05:15:27 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-12-16 08:04:22 +0100 |
commit | 3cf773e4264ecc6e9f603a24aeb72cc68b372f96 (patch) | |
tree | 57b0419f8c3b6e607da7092711dfd5fde9fbe3fe /cache-tree.h | |
parent | cache-tree: replace "for" loops in update_one with "while" loops (diff) | |
download | git-3cf773e4264ecc6e9f603a24aeb72cc68b372f96.tar.xz git-3cf773e4264ecc6e9f603a24aeb72cc68b372f96.zip |
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>
Diffstat (limited to 'cache-tree.h')
-rw-r--r-- | cache-tree.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/cache-tree.h b/cache-tree.h index d8cb2e9e39..55d0f59f2b 100644 --- a/cache-tree.h +++ b/cache-tree.h @@ -7,6 +7,7 @@ struct cache_tree; struct cache_tree_sub { struct cache_tree *cache_tree; + int count; /* internally used by update_one() */ int namelen; int used; char name[FLEX_ARRAY]; |