bool UpdateForChangedFiles(CommandUpdateEventArgs e) { ISvnLogChangedPathItem change = EnumTools.GetSingle(e.Selection.GetSelection <ISvnLogChangedPathItem>()); if (change == null) { return(false); } // Skip all the files we cannot diff switch (change.Action) { case SvnChangeAction.Add: if (change.CopyFromRevision >= 0) { break; // We can retrieve this file using CopyFromPath } e.Enabled = false; break; case SvnChangeAction.Delete: e.Enabled = false; break; } if (change.NodeKind == SvnNodeKind.Directory) { e.Enabled = false; } return(true); }
void PerformFileChanges(CommandEventArgs e) { ISvnLogChangedPathItem item = EnumTools.GetSingle(e.Selection.GetSelection <ISvnLogChangedPathItem>()); if (item != null) { switch (item.Action) { case SvnChangeAction.Delete: return; case SvnChangeAction.Add: case SvnChangeAction.Replace: if (item.CopyFromRevision < 0) { return; } break; } ExecuteDiff(e, new SvnOrigin[] { item.Origin }, new SvnRevisionRange(item.Revision - 1, item.Revision)); } }