diff options
author | Mike Krüger <mkrueger@novell.com> | 2010-11-11 13:34:12 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2010-11-11 13:34:12 +0300 |
commit | 9955b31ed3389fb8bacb0218344c9d15eae23c32 (patch) | |
tree | 3175413ca231b2c3e6fa4befb57bb55977c002a1 | |
parent | 5775a8e4b7f32be3c09e588e9eaafb22136a85dc (diff) |
Fixed 'Bug 324878 - Commit message is lost if there is an error'.
6 files changed, 18 insertions, 19 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs index acc624b463..78bd8eeba1 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs @@ -438,7 +438,7 @@ namespace MonoDevelop.VersionControl.Git { string file = Path.GetTempFileName (); try { - File.WriteAllText (file, changeSet.GlobalComment); + File.WriteAllText (file, ChangeSet.GlobalComment); string paths = ToCmdPathList (changeSet.Items.Select (it => it.LocalPath)); RunCommand ("commit -F \"" + file + "\" " + paths, true, monitor); } finally { diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs index c218db4841..2b67efdc56 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs @@ -200,7 +200,7 @@ namespace MonoDevelop.VersionControl.Subversion List<FilePath> list = new List<FilePath> ();
foreach (ChangeSetItem it in changeSet.Items)
list.Add (it.LocalPath);
- Svn.Commit (list.ToArray (), changeSet.GlobalComment, monitor);
+ Svn.Commit (list.ToArray (), ChangeSet.GlobalComment, monitor);
}
void CreateDirectory (string[] paths, string message, IProgressMonitor monitor)
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/CommitDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/CommitDialog.cs index a50a3ac75a..f5f9f596d0 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/CommitDialog.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/CommitDialog.cs @@ -26,7 +26,7 @@ namespace MonoDevelop.VersionControl.Dialogs store = new ListStore(typeof (Gdk.Pixbuf), typeof (string), typeof (string), typeof(bool), typeof(object)); fileList.Model = store; this.changeSet = changeSet; - oldMessage = changeSet.GlobalComment; + oldMessage = ChangeSet.GlobalComment; CellRendererText crt = new CellRendererText (); var crp = new CellRendererPixbuf (); @@ -86,13 +86,13 @@ namespace MonoDevelop.VersionControl.Dialogs selected.Add (info.LocalPath); } - if (changeSet.GlobalComment.Length == 0) { + if (string.IsNullOrEmpty (ChangeSet.GlobalComment)) { AuthorInformation aInfo; CommitMessageFormat fmt = VersionControlService.GetCommitMessageFormat (changeSet, out aInfo); Message = changeSet.GenerateGlobalComment (fmt, aInfo); } else - Message = changeSet.GlobalComment; + Message = ChangeSet.GlobalComment; textview.Buffer.Changed += OnTextChanged; @@ -123,7 +123,7 @@ namespace MonoDevelop.VersionControl.Dialogs } foreach (string file in todel) changeSet.RemoveFile (file); - changeSet.GlobalComment = Message; + ChangeSet.GlobalComment = Message; // Perform the commit @@ -137,7 +137,7 @@ namespace MonoDevelop.VersionControl.Dialogs MessageService.ShowException (ex); res = false; } - + System.Console.WriteLine ("RES: " + res); if (!res) { // Commit failed. Rollback the previous extensions for (int m=0; m<n; m++) { @@ -151,14 +151,14 @@ namespace MonoDevelop.VersionControl.Dialogs Hide (); } } else { - changeSet.GlobalComment = oldMessage; + ChangeSet.GlobalComment = oldMessage; } base.OnResponse (type); } void OnTextChanged (object s, EventArgs args) { - changeSet.GlobalComment = Message; + ChangeSet.GlobalComment = Message; } public void EndCommit (bool success) diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs index f30c1c7cf4..21343dc5c4 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs @@ -641,9 +641,6 @@ namespace MonoDevelop.VersionControl.Views return; } - // Reset the global comment. It may be already set from previous commits. - changeSet.GlobalComment = string.Empty; - if (!CommitCommand.Commit (vc, changeSet.Clone (), false)) return; } diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ChangeSet.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ChangeSet.cs index 225b48ca0b..b5e5810579 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ChangeSet.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ChangeSet.cs @@ -10,7 +10,13 @@ namespace MonoDevelop.VersionControl { public class ChangeSet { - string globalComment = string.Empty; + public static string globalComment = string.Empty; + public static string GlobalComment { + get { return globalComment; } + set { globalComment = value; } + } + + List<ChangeSetItem> items = new List<ChangeSetItem> (); Repository repo;
FilePath basePath;
@@ -59,11 +65,6 @@ namespace MonoDevelop.VersionControl return writer.ToString (); } - public string GlobalComment { - get { return globalComment; } - set { globalComment = value; } - } - public FilePath BaseLocalPath { get { return basePath; } } @@ -134,7 +135,6 @@ namespace MonoDevelop.VersionControl public virtual void CopyFrom (ChangeSet other) { - globalComment = other.globalComment; repo = other.repo; basePath = other.basePath; items = new List<ChangeSetItem> (); diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CommitCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CommitCommand.cs index 57e1c5dc60..71dac14cfc 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CommitCommand.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CommitCommand.cs @@ -94,6 +94,8 @@ namespace MonoDevelop.VersionControl try { vc.Commit (changeSet, Monitor); Monitor.ReportSuccess (GettextCatalog.GetString ("Commit operation completed.")); + // Reset the global comment on successful commit. + ChangeSet.GlobalComment = ""; } catch { success = false; throw; |