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 2014/01/03 00:00:06 UTC

git commit: [#4671] remove old-style LastCommitDoc model and logic

Updated Branches:
  refs/heads/db/4671 [created] 5ddd1abc7


[#4671] remove old-style LastCommitDoc model and logic


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

Branch: refs/heads/db/4671
Commit: 5ddd1abc7e800a5527a3dcd6676303cae60d294c
Parents: 7642892
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Jan 2 17:51:11 2014 -0500
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Jan 2 17:51:11 2014 -0500

----------------------------------------------------------------------
 Allura/allura/model/repo.py | 93 ++--------------------------------------
 1 file changed, 4 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5ddd1abc/Allura/allura/model/repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repo.py b/Allura/allura/model/repo.py
index 9977a0f..9228076 100644
--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -83,20 +83,6 @@ TreeDoc = collection(
     Field('blob_ids', [dict(name=str, id=str)]),
     Field('other_ids', [dict(name=str, id=str, type=SObjType)]))
 
-LastCommitDoc_old = collection(
-    'repo_last_commit', project_doc_session,
-    Field('_id', str),
-    Field('object_id', str, index=True),
-    Field('name', str),
-    Field('commit_info', dict(
-        id=str,
-        date=datetime,
-        author=str,
-        author_email=str,
-        author_url=str,
-        shortlink=str,
-        summary=str)))
-
 # Information about the last commit to touch a tree
 LastCommitDoc = collection(
     'repo_last_commit', main_doc_session,
@@ -555,22 +541,9 @@ class Tree(RepoObject):
     def ls(self):
         '''
         List the entries in this tree, with historical commit info for
-        each node.  Eventually, ls_old can be removed and this can be
-        replaced with the following:
-
-            return self._lcd_map(LastCommit.get(self))
+        each node.
         '''
-        # look for existing new format first
-        last_commit = LastCommit.get(self, create=False)
-        if last_commit:
-            return self._lcd_map(last_commit)
-        # otherwise, try old format
-        old_style_results = self.ls_old()
-        if old_style_results:
-            log.info('Using old-style results from ls_old()')
-            return old_style_results
-        # finally, use the new implentation that auto-vivifies
-        last_commit = LastCommit.get(self, create=True)
+        last_commit = LastCommit.get(self)
         # ensure that the LCD is saved, even if
         # there is an error later in the request
         if last_commit:
@@ -615,64 +588,6 @@ class Tree(RepoObject):
                     ))
         return results
 
-    def ls_old(self):
-        # Load last commit info
-        id_re = re.compile("^{0}:{1}:".format(
-            self.repo._id,
-            re.escape(h.really_unicode(self.path()).encode('utf-8'))))
-        lc_index = dict(
-            (lc.name, lc.commit_info)
-            for lc in LastCommitDoc_old.m.find(dict(_id=id_re)))
-
-        # FIXME: Temporarily fall back to old, semi-broken lookup behavior until refresh is done
-        oids = [ x.id for x in chain(self.tree_ids, self.blob_ids, self.other_ids) ]
-        id_re = re.compile("^{0}:".format(self.repo._id))
-        lc_index.update(dict(
-            (lc.object_id, lc.commit_info)
-            for lc in LastCommitDoc_old.m.find(dict(_id=id_re, object_id={'$in': oids}))))
-        # /FIXME
-
-        if not lc_index:
-            # allow fallback to new method instead
-            # of showing a bunch of Nones
-            return []
-
-        results = []
-        def _get_last_commit(name, oid):
-            lc = lc_index.get(name, lc_index.get(oid, None))
-            if lc is None:
-                lc = dict(
-                    author=None,
-                    author_email=None,
-                    author_url=None,
-                    date=None,
-                    id=None,
-                    href=None,
-                    shortlink=None,
-                    summary=None)
-            if 'href' not in lc:
-                lc['href'] = self.repo.url_for_commit(lc['id'])
-            return lc
-        for x in sorted(self.tree_ids, key=lambda x:x.name):
-            results.append(dict(
-                    kind='DIR',
-                    name=x.name,
-                    href=x.name + '/',
-                    last_commit=_get_last_commit(x.name, x.id)))
-        for x in sorted(self.blob_ids, key=lambda x:x.name):
-            results.append(dict(
-                    kind='FILE',
-                    name=x.name,
-                    href=x.name,
-                    last_commit=_get_last_commit(x.name, x.id)))
-        for x in sorted(self.other_ids, key=lambda x:x.name):
-            results.append(dict(
-                    kind=x.type,
-                    name=x.name,
-                    href=None,
-                    last_commit=_get_last_commit(x.name, x.id)))
-        return results
-
     def path(self):
         if self.parent:
             assert self.parent is not self
@@ -840,13 +755,13 @@ class LastCommit(RepoObject):
             return None
 
     @classmethod
-    def get(cls, tree, create=True):
+    def get(cls, tree):
         '''Find or build the LastCommitDoc for the given tree.'''
         cache = getattr(c, 'model_cache', '') or ModelCache()
         path = tree.path().strip('/')
         last_commit_id = cls._last_commit_id(tree.commit, path)
         lcd = cache.get(cls, {'path': path, 'commit_id': last_commit_id})
-        if lcd is None and create:
+        if lcd is None:
             commit = cache.get(Commit, {'_id': last_commit_id})
             commit.set_context(tree.repo)
             lcd = cls._build(commit.get_path(path))