From 02b2b9ea0ee063cf3c1ed529e2d8c2695f349241 Mon Sep 17 00:00:00 2001 From: Andreia Gaita Date: Wed, 20 Sep 2017 17:07:48 +0200 Subject: [PATCH 1/2] Throw if the manager isn't ready so that windows use their cached data instead --- src/GitHub.Api/Git/Repository.cs | 2 +- src/GitHub.Api/Helpers/TaskHelpers.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/GitHub.Api/Git/Repository.cs b/src/GitHub.Api/Git/Repository.cs index 6da63347b..7ea6fc19b 100644 --- a/src/GitHub.Api/Git/Repository.cs +++ b/src/GitHub.Api/Git/Repository.cs @@ -82,7 +82,7 @@ public ITask SetupRemote(string remote, string remoteUrl) public ITask> Log() { if (repositoryManager == null) - return new FuncListTask(TaskHelpers.GetCompletedTask(new List())); + return new FuncListTask(new NotReadyException().ToTask>()); return repositoryManager.Log(); } diff --git a/src/GitHub.Api/Helpers/TaskHelpers.cs b/src/GitHub.Api/Helpers/TaskHelpers.cs index e1c6e301e..1698b92ab 100644 --- a/src/GitHub.Api/Helpers/TaskHelpers.cs +++ b/src/GitHub.Api/Helpers/TaskHelpers.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; namespace GitHub.Unity @@ -8,5 +9,16 @@ public static Task GetCompletedTask(T result) { return TaskEx.FromResult(result); } + + public static Task ToTask(this Exception exception) + { + TaskCompletionSource completionSource = new TaskCompletionSource(); + completionSource.TrySetException(exception); + return completionSource.Task; + } + } + + public class NotReadyException : Exception + { } } \ No newline at end of file From dd21f7118d2daf4e412f8d6ab9ca67c0a8116015 Mon Sep 17 00:00:00 2001 From: Andreia Gaita Date: Wed, 20 Sep 2017 17:53:56 +0200 Subject: [PATCH 2/2] We probably want to fail listing locks too --- src/GitHub.Api/Git/Repository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitHub.Api/Git/Repository.cs b/src/GitHub.Api/Git/Repository.cs index 7ea6fc19b..e26cf1833 100644 --- a/src/GitHub.Api/Git/Repository.cs +++ b/src/GitHub.Api/Git/Repository.cs @@ -120,7 +120,7 @@ public ITask Revert(string changeset) public ITask ListLocks() { if (repositoryManager == null) - return new ActionTask(TaskExtensions.CompletedTask); + return new ActionTask(new NotReadyException().ToTask()); return repositoryManager.ListLocks(false); }