# HG changeset patch # User Marcin Kuzminski # Date 2013-01-08 14:47:37 # Node ID 46234d2d388fc4d019e38accbd8bf714a8476bd2 # Parent 58a4004224a26d49bc236e8afcd606373065140a fixed issues with getting repos by path on windows diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -740,6 +740,17 @@ class Repository(Base, BaseModel): return URL_SEP @classmethod + def normalize_repo_name(cls, repo_name): + """ + Normalizes os specific repo_name to the format internally stored inside + dabatabase using URL_SEP + + :param cls: + :param repo_name: + """ + return cls.url_sep().join(repo_name.split(os.sep)) + + @classmethod def get_by_repo_name(cls, repo_name): q = Session().query(cls).filter(cls.repo_name == repo_name) q = q.options(joinedload(Repository.fork))\ @@ -750,6 +761,7 @@ class Repository(Base, BaseModel): @classmethod def get_by_full_path(cls, repo_full_path): repo_name = repo_full_path.split(cls.base_path(), 1)[-1] + repo_name = cls.normalize_repo_name(repo_name) return cls.get_by_repo_name(repo_name.strip(URL_SEP)) @classmethod diff --git a/rhodecode/model/scm.py b/rhodecode/model/scm.py --- a/rhodecode/model/scm.py +++ b/rhodecode/model/scm.py @@ -230,7 +230,7 @@ class ScmModel(BaseModel): # name need to be decomposed and put back together using the / # since this is internal storage separator for rhodecode - name = Repository.url_sep().join(name.split(os.sep)) + name = Repository.normalize_repo_name(name) try: if name in repos: