public void LoadFrom (ChangeLogPolicy policy) { switch (policy.UpdateMode) { case ChangeLogUpdateMode.None: noneRadioButton.Active = true; break; case ChangeLogUpdateMode.Nearest: nearestRadioButton.Active = true; break; case ChangeLogUpdateMode.ProjectRoot: oneChangeLogInProjectRootDirectoryRadioButton.Active = true; break; case ChangeLogUpdateMode.Directory: oneChangeLogInEachDirectoryRadioButton.Active = true; break; } checkVersionControl.Active = policy.VcsIntegration != VcsIntegration.None; checkRequireOnCommit.Active = policy.VcsIntegration == VcsIntegration.RequireEntry; style = new CommitMessageStyle (); style.CopyFrom (policy.MessageStyle); var format = new CommitMessageFormat (); format.MaxColumns = 70; format.Style = style; SolutionItem item = null; if (parent.ConfiguredSolutionItem != null) item = parent.ConfiguredSolutionItem; else if (parent.ConfiguredSolution != null) item = parent.ConfiguredSolution.RootFolder; messageWidget.Load (format, item != null ? item.AuthorInformation : AuthorInformation.Default); }
public ChangeLogInterceptor(Func<IPlatformRepository> repositoryFactory, ChangeLogPolicy policy, string[] entityTypes, IUserNameResolver userNameResolver) { _repositoryFactory = repositoryFactory; _policy = policy; _entityTypes = entityTypes; _userNameResolver = userNameResolver; }
// Returns the path of the ChangeLog where changes of the provided file have to be logged. // Returns null if no ChangeLog could be found. // Returns an empty string if changes don't have to be logged. public static string GetChangeLogForFile (string baseCommitPath, string file, out SolutionItem parentEntry, out ChangeLogPolicy policy) { parentEntry = null; policy = null; if (!IdeApp.Workspace.IsOpen) return null; // Find the project that contains the file. If none is found // find a combine entry at the file location string bestPath = null; file = FileService.GetFullPath (file); foreach (SolutionItem e in IdeApp.Workspace.GetAllSolutionItems ()) { if (e is Project && ((Project)e).Files.GetFile (file) != null) { parentEntry = e; break; } string epath = FileService.GetFullPath (e.BaseDirectory) + Path.DirectorySeparatorChar; if (file.StartsWith (epath) && (bestPath == null || bestPath.Length < epath.Length)) { bestPath = epath; parentEntry = e; } } if (parentEntry == null) return null; policy = GetPolicy (parentEntry); if (baseCommitPath == null) baseCommitPath = parentEntry.ParentSolution.BaseDirectory; baseCommitPath = FileService.GetFullPath (baseCommitPath); if (policy.VcsIntegration == VcsIntegration.None) return ""; switch (policy.UpdateMode) { case ChangeLogUpdateMode.None: return string.Empty; case ChangeLogUpdateMode.Nearest: { string dir = FileService.GetFullPath (Path.GetDirectoryName (file)); do { string cf = Path.Combine (dir, "ChangeLog"); if (File.Exists (cf)) return cf; dir = Path.GetDirectoryName (dir); } while (dir.Length >= baseCommitPath.Length); return null; } case ChangeLogUpdateMode.ProjectRoot: return Path.Combine (parentEntry.BaseDirectory, "ChangeLog"); case ChangeLogUpdateMode.Directory: string fileDir = Path.GetDirectoryName (file); return Path.Combine (fileDir, "ChangeLog"); default: LoggingService.LogError ("Could not handle ChangeLogUpdateMode: " + policy.UpdateMode); return null; } }
public static CommitMessageStyle GetMessageStyle (SolutionItem item) { ChangeLogPolicy policy; if (item != null) policy = GetPolicy (item); else policy = new ChangeLogPolicy (); return policy.MessageStyle; }
public ChangeLogInterceptor(Func<IPlatformRepository> repositoryFactory, ChangeLogPolicy policy, string[] entityTypes) { _repositoryFactory = repositoryFactory; _entityTypes = entityTypes; _policy = policy; }