diff options
author | Marius Ungureanu <teromario@yahoo.com> | 2018-02-14 10:27:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-14 10:27:50 +0300 |
commit | f5662f3d64e4343eabf1a8ae113199d58e9130c4 (patch) | |
tree | 16bf370860e7b7e8bce95140c19767244489f18e /main/src/addins/VersionControl | |
parent | d70128a9c6e7cbd449ff8a1c6d6df945de228b52 (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')
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); |