changeset 1028:f42ee60e673b beta

fixed issue with db transaction when filesystem creation of repository failed added extra logging
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 11 Feb 2011 11:30:04 +0100
parents 6ba61c252ee4
children 3bf8898ce66d
files rhodecode/model/repo.py rhodecode/model/scm.py
diffstat 2 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/repo.py	Fri Feb 11 10:39:40 2011 +0100
+++ b/rhodecode/model/repo.py	Fri Feb 11 11:30:04 2011 +0100
@@ -211,21 +211,22 @@
                     .filter(Permission.permission_name == default_perm)\
                     .one().permission_id
 
-            repo_to_perm.repository_id = new_repo.repo_id
+            repo_to_perm.repository = new_repo
             repo_to_perm.user_id = UserModel(self.sa)\
                 .get_by_username('default', cache=False).user_id
 
             self.sa.add(repo_to_perm)
+
+            if not just_db:
+                self.__create_repo(repo_name, form_data['repo_type'])
+
             self.sa.commit()
 
-
             #now automatically start following this repository as owner
             from rhodecode.model.scm import ScmModel
             ScmModel(self.sa).toggle_following_repo(new_repo.repo_id,
                                              cur_user.user_id)
 
-            if not just_db:
-                self.__create_repo(repo_name, form_data['repo_type'])
         except:
             log.error(traceback.format_exc())
             self.sa.rollback()
--- a/rhodecode/model/scm.py	Fri Feb 11 10:39:40 2011 +0100
+++ b/rhodecode/model/scm.py	Fri Feb 11 11:30:04 2011 +0100
@@ -185,11 +185,13 @@
 
             try:
                 alias = get_scm(repo_path)[0]
-
                 log.debug('Creating instance of %s repository', alias)
                 backend = get_backend(alias)
             except VCSError:
                 log.error(traceback.format_exc())
+                log.error('Perhaps this repository is in db and not in filesystem'
+                          'run rescan repositories with "destroy old data "'
+                          'option from admin panel')
                 return
 
             if alias == 'hg':