internal static bool CanRecommend(SVNLogEntry entry) { if (entry == null) { return false; } if (!entry.Source.Enabled) { return false; } if (entry.Source.IsURL) { return false; } if (entry.Recommended) { return false; } if (entry.Source.IsFileURL) { return false; } if (!entry.Source.EnableRecommendations) { return false; } return true; }
internal static bool CanCopyMessageToClipboard(SVNLogEntry entry) { if (entry == null) { return false; } return !string.IsNullOrEmpty(entry.Message); }
public virtual void RunTest() { List<SVNLogEntry> list = new List<SVNLogEntry>(); Source tempLocal0 = new Source { Name = "SVNMonitor" }; Source source = tempLocal0; SVNLogEntry entry = new SVNLogEntry(source, 0x4d2L, "Chuck", DateTime.Now, "Fixed all bugs in the world."); list.Add(entry); EventLog.LogInfo(string.Format("Testing '{0}'...", DisplayName), this); Run(list, null); }
internal static bool CanRollback(SVNLogEntry entry) { if (entry == null) { return false; } if (entry.Source.IsURL) { return false; } if (entry.Unread) { return false; } return true; }
public static void ShowLogEntryDetails(ILogEntriesView view, SVNLogEntry entry) { LogEntryDetailsDialog dialog; var predicate = GetPredicate(entry); if (OpenDialogs.Any(predicate)) { dialog = OpenDialogs.Where(predicate).First(); } else { dialog = new LogEntryDetailsDialog(view, entry); OpenDialogs.Add(dialog); } if (dialog.WindowState == FormWindowState.Minimized) { dialog.WindowState = FormWindowState.Normal; } dialog.Show(); dialog.Activate(); }
internal static bool CanOpenSVNLog(SVNLogEntry entry) { return (entry != null); }
internal static bool CanDiff(SVNLogEntry entry) { return (entry != null); }
internal static bool CanCopyToClipboard(SVNLogEntry entry) { return (entry != null); }
internal static bool CanCopyPaths(SVNLogEntry entry) { return (entry != null); }
public SVNPath(SVNLogEntry logEntry, SVNAction action, string name) { LogEntry = logEntry; Action = action; Name = name; }
internal static bool CanSVNUpdate(SVNLogEntry entry) { if (entry == null) { return false; } if (entry.Source.IsURL) { return false; } return true; }
private static SVNLog SharpSVNToSVNLog(Source source, Collection<SvnLogEventArgs> collection, SVNInfo info, Collection<SvnStatusEventArgs> statusCollection) { SVNLog log = new SVNLog(); Dictionary<string, SvnStatusEventArgs> statusMap = GetStatusMap(statusCollection); foreach (SvnLogEventArgs logItem in collection) { DateTime localTime = logItem.Time.ToLocalTime(); SVNLogEntry entry = new SVNLogEntry(source, logItem.Revision, logItem.Author, localTime, logItem.LogMessage); SvnChangeItemCollection items = logItem.ChangedPaths; if (items != null) { List<SVNPath> paths = new List<SVNPath>(); foreach (SvnChangeItem item in items) { SVNPath path = new SVNPath(entry, SVNActionConverter.ToSVNAction(item.Action), item.Path); string pathName = item.Path; if (pathName.StartsWith("/")) { pathName = pathName.Substring(1); } string pathUri = info.RepositoryRoot + pathName; path.Uri = pathUri; if (statusMap.ContainsKey(pathUri)) { SvnStatusEventArgs statusItem = statusMap[pathUri]; path.FilePath = statusItem.FullPath; } else { string filePath = SVNPath.GuessFilePath(entry, path.Name, info); if (FileSystemHelper.Exists(filePath)) { path.FilePath = filePath; } else { path.FilePath = pathUri; } } paths.Add(path); } entry.Paths = paths; log.LogEntries.Add(entry); } } return log; }
public LogEntryDetailsDialog(ILogEntriesView view, SVNLogEntry entry) : this() { ParentView = view; LogEntry = entry; }
private static Func<LogEntryDetailsDialog, bool> GetPredicate(SVNLogEntry entry) { return d => (d.LogEntry == entry); }
internal static string GuessFilePath(SVNLogEntry logEntry, string name, SVNInfo info) { if (info == null) { return name; } if (logEntry.Source.IsURL) { return (info.RepositoryRoot + name); } if (FileSystemHelper.FileExists(info.Path)) { return info.Path; } string sourcePath = logEntry.Source.Path; string target = null; string fileProtocol = "file:///"; if (info.URL.Contains(fileProtocol)) { target = name; if (target.StartsWith(fileProtocol)) { target = target.Substring(fileProtocol.Length); } else { string rootBase = info.URL.Substring(info.RepositoryRoot.Length); if (rootBase.Length <= target.Length) { target = target.Substring(rootBase.Length); if (target.StartsWith("/")) { target = target.Substring(1, target.Length - 1); } target = Path.Combine(sourcePath, target); } } } if (target == null) { target = name.Trim().Replace('/', '\\'); string rootBase = info.URL.Substring(info.RepositoryRoot.Length); if (string.IsNullOrEmpty(rootBase)) { target = target.TrimStart(new[] { '\\' }); target = Path.Combine(sourcePath, target); } else if (name.Length > rootBase.Length) { target = sourcePath + name.Substring(rootBase.Length); } } try { target = FileSystemHelper.GetFullPath(target); } catch (Exception ex) { Logger.Log.Error(string.Format("Error in System.IO.Path.GetFullPath (source={0}, sourcePath={1}, target={2})", logEntry.Source, sourcePath, target), ex); } return target; }
internal static bool CanRunAuthorWizard(SVNLogEntry entry) { return (entry != null); }
internal static bool CanShowDetails(SVNLogEntry entry) { return (entry != null); }
private void CreateTipTextForSingleLogEntry(SVNLogEntry logEntry) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0} has updated {1}:{2}", logEntry.Author, logEntry.SourceName, Environment.NewLine); sb.AppendLine(logEntry.Message); int count = logEntry.Paths.Count; sb.AppendFormat("({0} item{1} updated)", count, (count == 1) ? string.Empty : "s"); TipText = sb.ToString(); }