From fbcde472cadfc8319016faca90cb5b57f7a00ee4 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 17 Apr 2009 20:58:02 -0700 Subject: Improve repo sync performance by avoid git forks By resolving the current HEAD and the manifest revision using pure Python, we can in the common case of "no changes" avoid a lot of git operations and directly jump out of the local sync method. This reduces the no-op `repo sync -l` time for Android's 114 projects from more than 6s to under 0.8s. Signed-off-by: Shawn O. Pearce --- git_refs.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'git_refs.py') diff --git a/git_refs.py b/git_refs.py index 9851e78b..eefa2abe 100644 --- a/git_refs.py +++ b/git_refs.py @@ -41,6 +41,17 @@ class GitRefs(object): except KeyError: return '' + def deleted(self, name): + if self._phyref is not None: + if name in self._phyref: + del self._phyref[name] + + if name in self._symref: + del self._symref[name] + + if name in self._mtime: + del self._mtime[name] + def _NeedUpdate(self): for name, mtime in self._mtime.iteritems(): try: -- cgit v1.2.3-54-g00ecf