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);
			}
		}