Don't skip worktree updates if unknown entries are removed

When rejoining a project, if entries were both created and deleted since
joining the project, the guest will receive those entries ids in as
removed.
This commit is contained in:
Max Brunsfeld 2023-04-05 15:36:01 -07:00
parent 661fba8640
commit 43a94cda5f

View file

@ -1227,11 +1227,10 @@ impl Snapshot {
let mut entries_by_path_edits = Vec::new(); let mut entries_by_path_edits = Vec::new();
let mut entries_by_id_edits = Vec::new(); let mut entries_by_id_edits = Vec::new();
for entry_id in update.removed_entries { for entry_id in update.removed_entries {
let entry = self if let Some(entry) = self.entry_for_id(ProjectEntryId::from_proto(entry_id)) {
.entry_for_id(ProjectEntryId::from_proto(entry_id)) entries_by_path_edits.push(Edit::Remove(PathKey(entry.path.clone())));
.ok_or_else(|| anyhow!("unknown entry {}", entry_id))?; entries_by_id_edits.push(Edit::Remove(entry.id));
entries_by_path_edits.push(Edit::Remove(PathKey(entry.path.clone()))); }
entries_by_id_edits.push(Edit::Remove(entry.id));
} }
for entry in update.updated_entries { for entry in update.updated_entries {