Mercurial > kallithea
comparison rhodecode/model/repo.py @ 659:758f64f3fbda beta
extended repo creation by repo type. fixed fork creation to maintain repo type.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 05 Nov 2010 21:55:30 +0100 |
parents | ae292c3b94ed |
children | dff6d5cb8bba |
comparison
equal
deleted
inserted
replaced
658:4ecb2ffcc110 | 659:758f64f3fbda |
---|---|
19 """ | 19 """ |
20 Created on Jun 5, 2010 | 20 Created on Jun 5, 2010 |
21 model for handling repositories actions | 21 model for handling repositories actions |
22 :author: marcink | 22 :author: marcink |
23 """ | 23 """ |
24 | 24 from vcs.backends import get_repo, get_backend |
25 from datetime import datetime | 25 from datetime import datetime |
26 from pylons import app_globals as g | 26 from pylons import app_globals as g |
27 from rhodecode.model.db import Repository, RepoToPerm, User, Permission | 27 from rhodecode.model.db import Repository, RepoToPerm, User, Permission |
28 from rhodecode.model.meta import Session | 28 from rhodecode.model.meta import Session |
29 from rhodecode.model.user import UserModel | 29 from rhodecode.model.user import UserModel |
149 repo_to_perm.user_id = UserModel(self.sa).get_by_username('default', cache=False).user_id | 149 repo_to_perm.user_id = UserModel(self.sa).get_by_username('default', cache=False).user_id |
150 | 150 |
151 self.sa.add(repo_to_perm) | 151 self.sa.add(repo_to_perm) |
152 self.sa.commit() | 152 self.sa.commit() |
153 if not just_db: | 153 if not just_db: |
154 self.__create_repo(repo_name) | 154 self.__create_repo(repo_name, form_data['repo_type']) |
155 except: | 155 except: |
156 log.error(traceback.format_exc()) | 156 log.error(traceback.format_exc()) |
157 self.sa.rollback() | 157 self.sa.rollback() |
158 raise | 158 raise |
159 | 159 |
180 except: | 180 except: |
181 log.error(traceback.format_exc()) | 181 log.error(traceback.format_exc()) |
182 self.sa.rollback() | 182 self.sa.rollback() |
183 raise | 183 raise |
184 | 184 |
185 def __create_repo(self, repo_name): | 185 def __create_repo(self, repo_name, alias): |
186 from rhodecode.lib.utils import check_repo | 186 from rhodecode.lib.utils import check_repo |
187 repo_path = os.path.join(g.base_path, repo_name) | 187 repo_path = os.path.join(g.base_path, repo_name) |
188 if check_repo(repo_name, g.base_path): | 188 if check_repo(repo_name, g.base_path): |
189 log.info('creating repo %s in %s', repo_name, repo_path) | 189 log.info('creating repo %s in %s', repo_name, repo_path) |
190 from vcs.backends.hg import MercurialRepository | 190 backend = get_backend(alias) |
191 MercurialRepository(repo_path, create=True) | 191 backend(repo_path, create=True) |
192 | 192 |
193 def __rename_repo(self, old, new): | 193 def __rename_repo(self, old, new): |
194 log.info('renaming repo from %s to %s', old, new) | 194 log.info('renaming repo from %s to %s', old, new) |
195 | 195 |
196 old_path = os.path.join(g.base_path, old) | 196 old_path = os.path.join(g.base_path, old) |