diff options
-rw-r--r-- | libbe/vcs.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libbe/vcs.py b/libbe/vcs.py index 1298a2c..44643a4 100644 --- a/libbe/vcs.py +++ b/libbe/vcs.py @@ -127,7 +127,6 @@ class VCS(object): self._duplicateBasedir = None self._duplicateDirname = None self.encoding = encoding - self.version = self._get_version() def __str__(self): return "<%s %s>" % (self.__class__.__name__, id(self)) def __repr__(self): @@ -235,6 +234,11 @@ class VCS(object): specified revision does not exist. """ return None + def version(self): + """Cache version string for efficiency.""" + if not hasattr(self, '_version'): + self._version = self._get_version() + return self._version def _get_version(self): try: ret = self._vcs_version() @@ -247,7 +251,7 @@ class VCS(object): except CommandError: return None def installed(self): - if self.version != None: + if self.version() != None: return True return False def detect(self, path="."): |