diff --git a/rhodecode/config/routing.py b/rhodecode/config/routing.py --- a/rhodecode/config/routing.py +++ b/rhodecode/config/routing.py @@ -34,7 +34,7 @@ def make_map(config): try: by_id = repo_name.split('_') - if len(by_id) == 2 and by_id[1].isdigit(): + if len(by_id) == 2 and by_id[1].isdigit() and by_id[0] == '': repo_name = Repository.get(by_id[1]).repo_name match_dict['repo_name'] = repo_name except: diff --git a/rhodecode/tests/functional/test_summary.py b/rhodecode/tests/functional/test_summary.py --- a/rhodecode/tests/functional/test_summary.py +++ b/rhodecode/tests/functional/test_summary.py @@ -1,6 +1,9 @@ from rhodecode.tests import * from rhodecode.model.db import Repository from rhodecode.lib.utils import invalidate_cache +from rhodecode.model.repo import RepoModel +from rhodecode.tests.models.common import _make_repo +from rhodecode.model.meta import Session class TestSummaryController(TestController): @@ -82,6 +85,20 @@ class TestSummaryController(TestControll """title="public repository" alt="public """ """repository" src="/images/icons/lock_open.png"/>""") + def test_index_by_repo_having_id_path_in_name_hg(self): + self.log_user() + _make_repo(name='repo_1') + Session().commit() + response = self.app.get(url(controller='summary', + action='index', + repo_name='repo_1')) + + try: + response.mustcontain("""repo_1""") + finally: + RepoModel().delete(Repository.get_by_repo_name('repo_1')) + Session().commit() + def test_index_by_id_git(self): self.log_user() ID = Repository.get_by_repo_name(GIT_REPO).repo_id