You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/06/21 23:34:50 UTC

[38/38] git commit: [#6272] TMW tracking of additional SCM methods

[#6272] TMW tracking of additional SCM methods

Signed-off-by: Cory Johns <cj...@slashdotmedia.com>


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

Branch: refs/heads/cj/6272
Commit: f44e872e84ff31fb7786915c8f696c9204959804
Parents: 8a7e7f4
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Jun 21 21:33:52 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Fri Jun 21 21:33:52 2013 +0000

----------------------------------------------------------------------
 Allura/allura/lib/custom_middleware.py |  6 ++++++
 ForgeGit/forgegit/model/git_repo.py    | 14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/f44e872e/Allura/allura/lib/custom_middleware.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py
index 6c121b4..e156e94 100644
--- a/Allura/allura/lib/custom_middleware.py
+++ b/Allura/allura/lib/custom_middleware.py
@@ -228,15 +228,21 @@ class AlluraTimerMiddleware(TimerMiddleware):
                         'checkin', 'info2', 'log', 'cat', 'list'))
         with pass_on_exc(ImportError):
             import git
+            import forgegit
             timers.append(Timer('git_lib.{method_name}', git.Repo, 'rev_parse', 'iter_commits', 'commit'))
+            timers.append(Timer('git_lib.{method_name}', forgegit.model.git_repo.GitLibCmdWrapper, 'log'))
         with pass_on_exc(ImportError):
             import mercurial.hg
             timers.append(Timer('hg_lib.{method_name}', mercurial.hg.localrepo.localrepository, 'heads',
                 'branchtags', 'tags'))
+            timers.append(Timer('hg_lib.{method_name}', mercurial.cmdutil, 'walkchangerevs'))
         return timers
 
     def repo_impl_timers(self):
         timers= []
+        from allura.model.repository import Repository, RepositoryImplementation
+        timers.append(Timer('base_tool.{method_name}', Repository, 'commitlog'))
+        timers.append(Timer('base_tool.{method_name}', RepositoryImplementation, 'last_commit_ids'))
         with pass_on_exc(ImportError):
             from forgegit.model.git_repo import GitImplementation
             timers.append(Timer('git_tool.{method_name}', GitImplementation, '*'))

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/f44e872e/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index c66ae91..6081a55 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -49,6 +49,16 @@ log = logging.getLogger(__name__)
 gitdb.util.mman = gitdb.util.mman.__class__(
     max_open_handles=128)
 
+class GitLibCmdWrapper(object):
+    def __init__(self, client):
+        self.client = client
+
+    def __getattr__(self, name):
+        return getattr(self.client, name)
+
+    def log(self, *args, **kwargs):
+        return self.client.log(*args, **kwargs)
+
 class Repository(M.Repository):
     tool_name='Git'
     repo_id='git'
@@ -95,7 +105,9 @@ class GitImplementation(M.RepositoryImplementation):
     @LazyProperty
     def _git(self):
         try:
-            return git.Repo(self._repo.full_fs_path, odbt=git.GitCmdObjectDB)
+            _git = git.Repo(self._repo.full_fs_path, odbt=git.GitCmdObjectDB)
+            _git.git = GitLibCmdWrapper(_git.git)
+            return _git
         except (git.exc.NoSuchPathError, git.exc.InvalidGitRepositoryError), err:
             log.error('Problem looking up repo: %r', err)
             return None