void GenerateLogEntries () { entries = new Dictionary<string,ChangeLogEntry> (); unknownFileCount = 0; enabled = false; requireComment = false; foreach (ChangeSetItem item in cset.Items) { MonoDevelop.Projects.SolutionItem parentItem; ChangeLogPolicy policy; string logf = ChangeLogService.GetChangeLogForFile (cset.BaseLocalPath, item.LocalPath, out parentItem, out policy); if (logf == string.Empty) continue; enabled = true; bool cantGenerate = false; if (logf == null) { cantGenerate = true; logf = System.IO.Path.GetDirectoryName (item.LocalPath); logf = System.IO.Path.Combine (logf, "ChangeLog"); } if (string.IsNullOrEmpty (item.Comment) && !item.IsDirectory) { uncommentedCount++; if (policy != null && policy.VcsIntegration == VcsIntegration.RequireEntry) requireComment = true; } ChangeLogEntry entry; if (!entries.TryGetValue (logf, out entry)) { entry = new ChangeLogEntry (); entry.AuthorInformation = IdeApp.Workspace.GetAuthorInformation (parentItem); entry.MessageStyle = ChangeLogService.GetMessageStyle (parentItem); entry.CantGenerate = cantGenerate; entry.File = logf; if (cantGenerate) unknownFileCount++; if (!File.Exists (logf)) entry.IsNew = true; entries [logf] = entry; } entry.Items.Add (item); } CommitMessageFormat format = new CommitMessageFormat (); format.TabsAsSpaces = false; format.TabWidth = 8; format.MaxColumns = 70; format.AppendNewlines = 2; foreach (ChangeLogEntry entry in entries.Values) { format.Style = entry.MessageStyle; entry.Message = cset.GeneratePathComment (entry.File, entry.Items, format, entry.AuthorInformation); } }