Fix inconsistent worktree state when renaming entries while scanning

This commit is contained in:
Max Brunsfeld 2023-04-13 22:34:34 -07:00
parent bb1cfd51b8
commit 5ea49b3ae3

View File

@ -1491,7 +1491,12 @@ impl LocalSnapshot {
}
let scan_id = self.scan_id;
self.entries_by_path.insert_or_replace(entry.clone(), &());
let removed = self.entries_by_path.insert_or_replace(entry.clone(), &());
if let Some(removed) = removed {
if removed.id != entry.id {
self.entries_by_id.remove(&removed.id, &());
}
}
self.entries_by_id.insert_or_replace(
PathEntry {
id: entry.id,