private void UpdateRenamedEntryOnDelete(Entry entry) {
if (entry.PreviousRelativePath == null) {
return;
}
Entry renamedEntry;
if (!_entries.TryGetValue(entry.PreviousRelativePath, out renamedEntry)) {
return;
}
switch (renamedEntry.State) {
case Renamed:
renamedEntry.State = Deleted;
return;
case RenamedThenAdded:
renamedEntry.State = Added;
return;
case Unchanged:
case Added:
case Deleted:
throw new InvalidStateException();
default:
throw new ArgumentOutOfRangeException();
}
}