You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/02/06 20:35:19 UTC

[3/3] git commit: [#4691] Changed refresh-last-commits.py to mark repo as analyzing and post refresh for new commits when done

Updated Branches:
  refs/heads/master b67150660 -> e096621af


[#4691] Changed refresh-last-commits.py to mark repo as analyzing and post refresh for new commits when done

Signed-off-by: Cory Johns <jo...@geek.net>


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/e096621a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/e096621a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/e096621a

Branch: refs/heads/master
Commit: e096621afe4caf9aed533dc7c8ca1cd725e938a1
Parents: 0a93358
Author: Cory Johns <jo...@geek.net>
Authored: Wed Feb 6 17:25:47 2013 +0000
Committer: Cory Johns <jo...@geek.net>
Committed: Wed Feb 6 19:23:51 2013 +0000

----------------------------------------------------------------------
 scripts/refresh-last-commits.py |   35 +++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/e096621a/scripts/refresh-last-commits.py
----------------------------------------------------------------------
diff --git a/scripts/refresh-last-commits.py b/scripts/refresh-last-commits.py
index a23f582..e3b643f 100644
--- a/scripts/refresh-last-commits.py
+++ b/scripts/refresh-last-commits.py
@@ -8,10 +8,11 @@ from contextlib import contextmanager
 
 import faulthandler
 from pylons import c
-from ming.orm import ThreadLocalORMSession
+from ming.orm import ThreadLocalORMSession, session
 
 from allura import model as M
 from allura.lib.utils import chunked_find, chunked_list
+from allura.tasks.repo_tasks import refresh
 
 log = logging.getLogger(__name__)
 
@@ -50,20 +51,22 @@ def main(options):
                             c.app.repo.tool.lower())
                     continue
 
-                ci_ids = list(reversed(list(c.app.repo.all_commit_ids())))
-                if options.clean:
-                    if options.diffs:
-                        # delete DiffInfoDocs
-                        i = M.repo.DiffInfoDoc.m.find(dict(commit_ids={'$in': ci_ids})).count()
-                        log.info("Deleting %i DiffInfoDoc docs, by repo id...", i)
+                c.app.repo.status = 'analyzing'
+                session(c.app.repo).flush(c.app.repo)
+                try:
+                    ci_ids = list(reversed(list(c.app.repo.all_commit_ids())))
+                    if options.clean:
+                        if options.diffs:
+                            # delete DiffInfoDocs
+                            i = M.repo.DiffInfoDoc.m.find(dict(commit_ids={'$in': ci_ids})).count()
+                            log.info("Deleting %i DiffInfoDoc docs, by repo id...", i)
+                            M.repo.LastCommitDoc.m.remove(dict(commit_ids={'$in': ci_ids}))
+
+                        # delete LastCommitDocs
+                        i = M.repo.LastCommitDoc.m.find(dict(commit_ids={'$in': ci_ids})).count()
+                        log.info("Deleting %i LastCommitDoc docs, by repo id...", i)
                         M.repo.LastCommitDoc.m.remove(dict(commit_ids={'$in': ci_ids}))
 
-                    # delete LastCommitDocs
-                    i = M.repo.LastCommitDoc.m.find(dict(commit_ids={'$in': ci_ids})).count()
-                    log.info("Deleting %i LastCommitDoc docs, by repo id...", i)
-                    M.repo.LastCommitDoc.m.remove(dict(commit_ids={'$in': ci_ids}))
-
-                try:
                     log.info('Refreshing all last commits in %r', c.app.repo)
                     if options.profile:
                         import cProfile
@@ -71,9 +74,15 @@ def main(options):
                                 globals(), locals(), '/tmp/refresh_lcds.profile')
                     else:
                         refresh_repo_lcds(ci_ids, options)
+                    new_commit_ids = app.repo.unknown_commit_ids()
+                    if len(new_commit_ids) > 0:
+                        refresh.post()
                 except:
                     log.exception('Error refreshing %r', c.app.repo)
                     raise
+                finally:
+                    c.app.repo.status = 'ready'
+                    session(c.app.repo).flush(c.app.repo)
         ThreadLocalORMSession.flush_all()
         ThreadLocalORMSession.close_all()