Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2010-11-11 13:34:12 +0300
committerMike Krüger <mkrueger@novell.com>2010-11-11 13:34:12 +0300
commit9955b31ed3389fb8bacb0218344c9d15eae23c32 (patch)
tree3175413ca231b2c3e6fa4befb57bb55977c002a1
parent5775a8e4b7f32be3c09e588e9eaafb22136a85dc (diff)
Fixed 'Bug 324878 - Commit message is lost if there is an error'.
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/CommitDialog.cs14
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs3
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ChangeSet.cs14
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CommitCommand.cs2
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;