Show More
@@ -503,6 +503,10 b' class Repository(Base, BaseModel):' | |||||
503 | self.repo_id, self.repo_name) |
|
503 | self.repo_id, self.repo_name) | |
504 |
|
504 | |||
505 | @classmethod |
|
505 | @classmethod | |
|
506 | def url_sep(cls): | |||
|
507 | return '/' | |||
|
508 | ||||
|
509 | @classmethod | |||
506 | def get_by_repo_name(cls, repo_name): |
|
510 | def get_by_repo_name(cls, repo_name): | |
507 | q = Session.query(cls).filter(cls.repo_name == repo_name) |
|
511 | q = Session.query(cls).filter(cls.repo_name == repo_name) | |
508 |
|
512 | |||
@@ -523,7 +527,8 b' class Repository(Base, BaseModel):' | |||||
523 |
|
527 | |||
524 | :param cls: |
|
528 | :param cls: | |
525 | """ |
|
529 | """ | |
526 |
q = Session.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == |
|
530 | q = Session.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == | |
|
531 | cls.url_sep()) | |||
527 | q.options(FromCache("sql_cache_short", "repository_repo_path")) |
|
532 | q.options(FromCache("sql_cache_short", "repository_repo_path")) | |
528 | return q.one().ui_value |
|
533 | return q.one().ui_value | |
529 |
|
534 | |||
@@ -558,7 +563,8 b' class Repository(Base, BaseModel):' | |||||
558 | Returns base full path for that repository means where it actually |
|
563 | Returns base full path for that repository means where it actually | |
559 | exists on a filesystem |
|
564 | exists on a filesystem | |
560 | """ |
|
565 | """ | |
561 |
q = Session.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == |
|
566 | q = Session.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == | |
|
567 | Repository.url_sep()) | |||
562 | q.options(FromCache("sql_cache_short", "repository_repo_path")) |
|
568 | q.options(FromCache("sql_cache_short", "repository_repo_path")) | |
563 | return q.one().ui_value |
|
569 | return q.one().ui_value | |
564 |
|
570 | |||
@@ -568,7 +574,7 b' class Repository(Base, BaseModel):' | |||||
568 | # we need to split the name by / since this is how we store the |
|
574 | # we need to split the name by / since this is how we store the | |
569 | # names in the database, but that eventually needs to be converted |
|
575 | # names in the database, but that eventually needs to be converted | |
570 | # into a valid system path |
|
576 | # into a valid system path | |
571 |
p += self.repo_name.split( |
|
577 | p += self.repo_name.split(Repository.url_sep()) | |
572 | return os.path.join(*p) |
|
578 | return os.path.join(*p) | |
573 |
|
579 | |||
574 | def get_new_name(self, repo_name): |
|
580 | def get_new_name(self, repo_name): | |
@@ -578,7 +584,7 b' class Repository(Base, BaseModel):' | |||||
578 | :param group_name: |
|
584 | :param group_name: | |
579 | """ |
|
585 | """ | |
580 | path_prefix = self.group.full_path_splitted if self.group else [] |
|
586 | path_prefix = self.group.full_path_splitted if self.group else [] | |
581 |
return |
|
587 | return Repository.url_sep().join(path_prefix + [repo_name]) | |
582 |
|
588 | |||
583 | @property |
|
589 | @property | |
584 | def _ui(self): |
|
590 | def _ui(self): |
@@ -22,6 +22,7 b'' | |||||
22 | # |
|
22 | # | |
23 | # You should have received a copy of the GNU General Public License |
|
23 | # You should have received a copy of the GNU General Public License | |
24 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
24 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
|
25 | import os | |||
25 | import time |
|
26 | import time | |
26 | import traceback |
|
27 | import traceback | |
27 | import logging |
|
28 | import logging | |
@@ -146,10 +147,15 b' class ScmModel(BaseModel):' | |||||
146 | repos_list = {} |
|
147 | repos_list = {} | |
147 |
|
148 | |||
148 | for name, path in get_filesystem_repos(repos_path, recursive=True): |
|
149 | for name, path in get_filesystem_repos(repos_path, recursive=True): | |
|
150 | ||||
|
151 | # name need to be decomposed and put back together using the / | |||
|
152 | # since this is internal storage separator for rhodecode | |||
|
153 | name = Repository.url_sep().join(name.split(os.sep)) | |||
|
154 | ||||
149 | try: |
|
155 | try: | |
150 | if name in repos_list: |
|
156 | if name in repos_list: | |
151 | raise RepositoryError('Duplicate repository name %s ' |
|
157 | raise RepositoryError('Duplicate repository name %s ' | |
152 | 'found in %s' % (name, path)) |
|
158 | 'found in %s' % (name, path)) | |
153 | else: |
|
159 | else: | |
154 |
|
160 | |||
155 | klass = get_backend(path[0]) |
|
161 | klass = get_backend(path[0]) |
General Comments 0
You need to be logged in to leave comments.
Login now