From 2b94817befc8538f85f454a8e112d7ae828ecf52 Mon Sep 17 00:00:00 2001 From: Jonathan Maw Date: Tue, 4 Jun 2013 11:32:00 +0100 Subject: Handle requesting a sha1 of a sha1 --- morphcacheserver/repocache.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/morphcacheserver/repocache.py b/morphcacheserver/repocache.py index 668d8fbb..cd2eab56 100644 --- a/morphcacheserver/repocache.py +++ b/morphcacheserver/repocache.py @@ -16,6 +16,7 @@ import cliapp import os +import re import string import urlparse @@ -59,9 +60,13 @@ class RepoCache(object): if not os.path.exists(repo_dir): raise RepositoryNotFoundError(repo_url) try: - if not self.direct_mode and not ref.startswith('refs/origin/'): - ref = 'refs/origin/' + ref - sha1 = self._rev_parse(repo_dir, ref) + if re.match('^[0-9a-fA-F]{40}$', ref): + sha1 = ref + else: + if (not self.direct_mode and + not ref.startswith('refs/origin/')): + ref = 'refs/origin/' + ref + sha1 = self._rev_parse(repo_dir, ref) return sha1, self._tree_from_commit(repo_dir, sha1) except cliapp.AppException: -- cgit v1.2.1