changeset 1807:1635a21485d6 beta

- fixed issue with missing commits on some repos commands - fixed issue with parsing commits for stats when there were only two commits
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 23 Dec 2011 04:47:48 +0200
parents 3480002d421e
children ff788e390497
files rhodecode/controllers/admin/repos.py rhodecode/controllers/forks.py rhodecode/controllers/summary.py rhodecode/lib/celerylib/tasks.py
diffstat 4 files changed, 24 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py	Wed Dec 21 20:22:32 2011 +0200
+++ b/rhodecode/controllers/admin/repos.py	Fri Dec 23 04:47:48 2011 +0200
@@ -97,12 +97,13 @@
             .filter(UserFollowing.follows_repository == c.repo_info).scalar()
 
         if c.repo_info.stats:
-            last_rev = c.repo_info.stats.stat_on_revision
+            # this is on what revision we ended up so we add +1 for count
+            last_rev = c.repo_info.stats.stat_on_revision + 1
         else:
             last_rev = 0
         c.stats_revision = last_rev
 
-        c.repo_last_rev = repo.count() - 1 if repo.revisions else 0
+        c.repo_last_rev = repo.count() if repo.revisions else 0
 
         if last_rev == 0 or c.repo_last_rev == 0:
             c.stats_percentage = 0
@@ -287,6 +288,7 @@
         try:
             repo_model = RepoModel()
             repo_model.delete_perm_user(request.POST, repo_name)
+            Session.commit()
         except Exception, e:
             h.flash(_('An error occurred during deletion of repository user'),
                     category='error')
@@ -302,6 +304,7 @@
         try:
             repo_model = RepoModel()
             repo_model.delete_perm_users_group(request.POST, repo_name)
+            Session.commit()
         except Exception, e:
             h.flash(_('An error occurred during deletion of repository'
                       ' users groups'),
@@ -319,6 +322,7 @@
         try:
             repo_model = RepoModel()
             repo_model.delete_stats(repo_name)
+            Session.commit()
         except Exception, e:
             h.flash(_('An error occurred during deletion of repository stats'),
                     category='error')
@@ -334,6 +338,7 @@
 
         try:
             ScmModel().mark_for_invalidation(repo_name)
+            Session.commit()
         except Exception, e:
             h.flash(_('An error occurred during cache invalidation'),
                     category='error')
@@ -357,6 +362,7 @@
                 self.scm_model.toggle_following_repo(repo_id, user_id)
                 h.flash(_('Updated repository visibility in public journal'),
                         category='success')
+                Session.commit()
             except:
                 h.flash(_('An error occurred during setting this'
                           ' repository in public journal'),
--- a/rhodecode/controllers/forks.py	Wed Dec 21 20:22:32 2011 +0200
+++ b/rhodecode/controllers/forks.py	Fri Dec 23 04:47:48 2011 +0200
@@ -80,12 +80,12 @@
             .filter(UserFollowing.follows_repository == c.repo_info).scalar()
 
         if c.repo_info.stats:
-            last_rev = c.repo_info.stats.stat_on_revision
+            last_rev = c.repo_info.stats.stat_on_revision+1
         else:
             last_rev = 0
         c.stats_revision = last_rev
 
-        c.repo_last_rev = repo.count() - 1 if repo.revisions else 0
+        c.repo_last_rev = repo.count() if repo.revisions else 0
 
         if last_rev == 0 or c.repo_last_rev == 0:
             c.stats_percentage = 0
--- a/rhodecode/controllers/summary.py	Wed Dec 21 20:22:32 2011 +0200
+++ b/rhodecode/controllers/summary.py	Fri Dec 23 04:47:48 2011 +0200
@@ -57,6 +57,7 @@
                     sorted(list(product(ALL_READMES, ALL_EXTS)),
                            key=lambda y:y[0][1] + y[1][1])]
 
+
 class SummaryController(BaseRepoController):
 
     @LoginRequired()
@@ -94,7 +95,7 @@
         uri = uri_tmpl % {'user': username,
                            'pass': password,
                            'scheme': parsed_url.scheme,
-                           'netloc':parsed_url.netloc,
+                           'netloc': parsed_url.netloc,
                            'path':parsed_url.path}
 
         c.clone_repo_url = uri
@@ -151,8 +152,8 @@
                                             key=lambda k: k[1])[:10]
                                         )
                                     )
-            last_rev = stats.stat_on_revision
-            c.repo_last_rev = c.rhodecode_repo.count() - 1 \
+            last_rev = stats.stat_on_revision + 1
+            c.repo_last_rev = c.rhodecode_repo.count()\
                 if c.rhodecode_repo.revisions else 0
             if last_rev == 0 or c.repo_last_rev == 0:
                 pass
--- a/rhodecode/lib/celerylib/tasks.py	Wed Dec 21 20:22:32 2011 +0200
+++ b/rhodecode/lib/celerylib/tasks.py	Fri Dec 23 04:47:48 2011 +0200
@@ -78,12 +78,13 @@
 
     return log
 
+
 @task(ignore_result=True)
 @locked_task
 def whoosh_index(repo_location, full_index):
     from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon
 
-    #log = whoosh_index.get_logger()
+    # log = whoosh_index.get_logger(whoosh_index)
 
     index_location = config['index_dir']
     WhooshIndexingDaemon(index_location=index_location,
@@ -100,6 +101,7 @@
     lockkey_path = config['here']
 
     log.info('running task with lockkey %s', lockkey)
+
     try:
         sa = get_session()
         lock = l = DaemonLock(file_=jn(lockkey_path, lockkey))
@@ -114,15 +116,15 @@
             return True
         
         repo = repo.scm_instance
-        repo_size = len(repo.revisions)
-        #return if repo have no revisions
+        repo_size = repo.count()
+        # return if repo have no revisions
         if repo_size < 1:
             lock.release()
             return True
 
         skip_date_limit = True
         parse_limit = int(config['app_conf'].get('commit_parse_limit'))
-        last_rev = 0
+        last_rev = None
         last_cs = None
         timegetter = itemgetter('time')
 
@@ -149,8 +151,10 @@
         log.debug('starting parsing %s', parse_limit)
         lmktime = mktime
 
-        last_rev = last_rev + 1 if last_rev > 0 else last_rev
-
+        last_rev = last_rev + 1 if last_rev >= 0 else 0
+        log.debug('Getting revisions from %s to %s' % (
+             last_rev, last_rev + parse_limit)
+        )
         for cs in repo[last_rev:last_rev + parse_limit]:
             last_cs = cs  # remember last parsed changeset
             k = lmktime([cs.date.timetuple()[0], cs.date.timetuple()[1],