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:
authorMarius Ungureanu <teromario@yahoo.com>2018-02-14 10:27:50 +0300
committerGitHub <noreply@github.com>2018-02-14 10:27:50 +0300
commitf5662f3d64e4343eabf1a8ae113199d58e9130c4 (patch)
tree16bf370860e7b7e8bce95140c19767244489f18e /main/src/addins/VersionControl
parentd70128a9c6e7cbd449ff8a1c6d6df945de228b52 (diff)
[Git,VCS] Fix some task balancing in clone and report message properly (#3841)
* [Git,VCS] Fix some task balancing in clone and report message properly * Fix PR feedback
Diffstat (limited to 'main/src/addins/VersionControl')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs67
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs7
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlTask.cs4
3 files changed, 39 insertions, 39 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 0209b93c1d..95386f870b 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
@@ -171,7 +171,7 @@ namespace MonoDevelop.VersionControl.Git
{
if (progress == 0 && tp.ReceivedObjects == 0) {
progress = 1;
- monitor.BeginTask (GettextCatalog.GetString ("Receiving and indexing objects"), 2 * tp.TotalObjects);
+ monitor.Log.WriteLine (GettextCatalog.GetString ("Receiving and indexing objects"), 2 * tp.TotalObjects);
throttleWatch.Restart ();
}
@@ -184,7 +184,6 @@ namespace MonoDevelop.VersionControl.Git
}
if (tp.IndexedObjects >= tp.TotalObjects) {
- monitor.EndTask ();
throttleWatch.Stop ();
}
@@ -195,7 +194,7 @@ namespace MonoDevelop.VersionControl.Git
{
if (progress == 0 && completedSteps == 0) {
progress = 1;
- monitor.BeginTask (GettextCatalog.GetString ("Checking out files"), 2 * totalSteps);
+ monitor.Log.WriteLine (GettextCatalog.GetString ("Checking out files"), 2 * totalSteps);
throttleWatch.Restart ();
}
@@ -207,7 +206,6 @@ namespace MonoDevelop.VersionControl.Git
}
if (completedSteps >= totalSteps) {
- monitor.EndTask ();
throttleWatch.Stop ();
}
}
@@ -931,41 +929,43 @@ namespace MonoDevelop.VersionControl.Git
int transferProgress = 0;
int checkoutProgress = 0;
- monitor.BeginTask ("Cloning...", 2);
+ try {
+ monitor.BeginTask ("Cloning...", 2);
- RetryUntilSuccess (monitor, credType => {
- RootPath = LibGit2Sharp.Repository.Clone (Url, targetLocalPath, new CloneOptions {
- CredentialsProvider = (url, userFromUrl, types) => {
- transferProgress = checkoutProgress = 0;
- return GitCredentials.TryGet (url, userFromUrl, types, credType);
- },
- RepositoryOperationStarting = ctx => {
- Runtime.RunInMainThread (() => {
- monitor.Log.WriteLine ("Checking out repository at '{0}'", ctx.RepositoryPath);
- });
- return true;
- },
- OnTransferProgress = (tp) => OnTransferProgress (tp, monitor, ref transferProgress),
- OnCheckoutProgress = (path, completedSteps, totalSteps) => {
- OnCheckoutProgress (completedSteps, totalSteps, monitor, ref checkoutProgress);
- Runtime.RunInMainThread (() => {
- monitor.Log.WriteLine ("Checking out file '{0}'", path);
- });
- },
+ RetryUntilSuccess (monitor, credType => {
+ RootPath = LibGit2Sharp.Repository.Clone (Url, targetLocalPath, new CloneOptions {
+ CredentialsProvider = (url, userFromUrl, types) => {
+ transferProgress = checkoutProgress = 0;
+ return GitCredentials.TryGet (url, userFromUrl, types, credType);
+ },
+ RepositoryOperationStarting = ctx => {
+ Runtime.RunInMainThread (() => {
+ monitor.Log.WriteLine ("Checking out repository at '{0}'", ctx.RepositoryPath);
+ });
+ return true;
+ },
+ OnTransferProgress = (tp) => OnTransferProgress (tp, monitor, ref transferProgress),
+ OnCheckoutProgress = (path, completedSteps, totalSteps) => {
+ OnCheckoutProgress (completedSteps, totalSteps, monitor, ref checkoutProgress);
+ Runtime.RunInMainThread (() => {
+ monitor.Log.WriteLine ("Checking out file '{0}'", path);
+ });
+ },
+ });
});
- });
- if (monitor.CancellationToken.IsCancellationRequested || RootPath.IsNull)
- return;
+ if (monitor.CancellationToken.IsCancellationRequested || RootPath.IsNull)
+ return;
- monitor.Step (1);
-
- RootPath = RootPath.ParentDirectory;
- RootRepository = new LibGit2Sharp.Repository (RootPath);
+ monitor.Step (1);
- RecursivelyCloneSubmodules (RootPath, monitor);
+ RootPath = RootPath.ParentDirectory;
+ RootRepository = new LibGit2Sharp.Repository (RootPath);
- monitor.EndTask ();
+ RecursivelyCloneSubmodules (RootPath, monitor);
+ } finally {
+ monitor.EndTask ();
+ }
}
static void RecursivelyCloneSubmodules (string path, ProgressMonitor monitor)
@@ -1006,6 +1006,7 @@ namespace MonoDevelop.VersionControl.Git
submodules.Add (Path.Combine (repo.Info.WorkingDirectory, sm.Path));
}
+ monitor.EndTask ();
});
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs
index 33763dd9de..b50acf324a 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs
@@ -66,12 +66,7 @@ namespace MonoDevelop.VersionControl
FileService.CreateDirectory (path);
}
- try {
- vc.Checkout (path, null, true, Monitor);
- } catch (VersionControlException e) {
- Monitor.ReportError (e.Message, null);
- return;
- }
+ vc.Checkout (path, null, true, Monitor);
if (Monitor.CancellationToken.IsCancellationRequested) {
Monitor.ReportSuccess (GettextCatalog.GetString ("Checkout operation cancelled"));
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlTask.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlTask.cs
index 295dee069d..96727e2422 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlTask.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlTask.cs
@@ -54,6 +54,10 @@ namespace MonoDevelop.VersionControl
string msg = GettextCatalog.GetString ("The operation could not be completed because a shared library is missing: ");
tracker.ReportError (msg + e.Message, null);
LoggingService.LogError ("Version Control command failed: ", e);
+ } catch (VersionControlException e) {
+ string msg = GettextCatalog.GetString ("Version control operation failed: ");
+ tracker.ReportError (msg + e.Message, e);
+ LoggingService.LogError ("Version Control command failed: ", e);
} catch (Exception e) {
string msg = GettextCatalog.GetString ("Version control operation failed: ");
tracker.ReportError (msg, e);