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