Mercurial > hg
changeset 49003:ce919b1a1063 stable
rust-dirstatemap: correctly decrement the copies counter
This was caught when writing unit tests for the `DirstateMap`. We were always
setting `had_copy_source` to `false` since we erased the value just before.
Differential Revision: https://phab.mercurial-scm.org/D12432
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Tue, 05 Apr 2022 10:55:28 +0200 |
parents | fbc02ccc207e |
children | 9dcfd1d05e6e |
files | rust/hg-core/src/dirstate_tree/dirstate_map.rs |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/dirstate_tree/dirstate_map.rs Tue Apr 05 10:55:28 2022 +0200 +++ b/rust/hg-core/src/dirstate_tree/dirstate_map.rs Tue Apr 05 10:55:28 2022 +0200 @@ -864,14 +864,16 @@ if had_entry { node.data = NodeData::None } + let mut had_copy_source = false; if let Some(source) = &node.copy_source { DirstateMap::count_dropped_path(unreachable_bytes, source); + had_copy_source = true; node.copy_source = None } dropped = Dropped { was_tracked, had_entry, - had_copy_source: node.copy_source.take().is_some(), + had_copy_source, }; } // After recursion, for both leaf (rest_of_path is None) nodes and