From 729f46a821e68366ec58ae5d7b70c67a738bebc9 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 3 Oct 2018 00:47:04 -0400 Subject: [PATCH] Fix IsSha --- .../Components/Repository/Repository.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Repository/Repository.cs b/src/Tgstation.Server.Host/Components/Repository/Repository.cs index bac6bdafa5..6608fcd753 100644 --- a/src/Tgstation.Server.Host/Components/Repository/Repository.cs +++ b/src/Tgstation.Server.Host/Components/Repository/Repository.cs @@ -587,8 +587,19 @@ namespace Tgstation.Server.Host.Components.Repository /// public Task IsSha(string committish, CancellationToken cancellationToken) => Task.Factory.StartNew(() => { - var gitObject = repository.Lookup(committish, ObjectType.Commit); - return gitObject != null; + //check if it's a tag + var gitObject = repository.Lookup(committish, ObjectType.Tag); + if (gitObject != null) + return false; + cancellationToken.ThrowIfCancellationRequested(); + //check if it's a branch + if (repository.Branches[committish] != null) + return false; + cancellationToken.ThrowIfCancellationRequested(); + //err on the side of references, if we can't look it up, assume its a reference + if (repository.Lookup(committish) != null) + return true; + return false; }, cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current); } }