diff --git a/src/GitList/Util/Routing.php b/src/GitList/Util/Routing.php index c687c3c..a8dcc17 100644 --- a/src/GitList/Util/Routing.php +++ b/src/GitList/Util/Routing.php @@ -58,11 +58,18 @@ class Routing } } - if ($matchedBranch === null) { - throw new EmptyRepositoryException('This repository is currently empty. There are no commits.'); + if ($matchedBranch !== null) { + $commitish = $matchedBranch; + } else { + // We may have partial commit hash as our commitish. + $hash = $slashPosition === false ? $commitishPath : substr($commitishPath, 0, $slashPosition); + if ($repository->hasCommit($hash)) { + $commit = $repository->getCommit($hash); + $commitish = $commit->getHash(); + } else { + throw new EmptyRepositoryException('This repository is currently empty. There are no commits.'); + } } - - $commitish = $matchedBranch; } $commitishLength = strlen($commitish);