static IEnumerable<string> CalcFilesForPatch(PatchInfo patch) {
var changes = patch.Items;
foreach (var change in changes) {
if (change.SyncAction == SyncAction.Delete)
continue;
yield return change.SyncAction == SyncAction.Move ? change.NewPath : change.OldPath;
}
}
static string SavePatchInfo(string rootPath, PatchInfo patch) {