Cache the base_dir value for subsequent calls
authorCatalin Marinas <catalin.marinas@gmail.com>
Thu, 9 Mar 2006 21:53:54 +0000 (21:53 +0000)
committerCatalin Marinas <catalin.marinas@gmail.com>
Thu, 9 Mar 2006 21:54:38 +0000 (21:54 +0000)
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
stgit/git.py

index 40d54ef..351ebbd 100644 (file)
@@ -82,13 +82,21 @@ __commits = dict()
 # Functions
 #
 
+# GIT_DIR value cached
+__base_dir = None
+
 def get_base_dir():
     """Different start-up variables read from the environment
     """
-    if 'GIT_DIR' in os.environ:
-        return os.environ['GIT_DIR']
-    else:
-        return _output_one_line('git-rev-parse --git-dir')
+    global __base_dir
+
+    if not __base_dir:
+        if 'GIT_DIR' in os.environ:
+            __base_dir = os.environ['GIT_DIR']
+        else:
+            __base_dir = _output_one_line('git-rev-parse --git-dir')
+
+    return __base_dir
 
 def get_commit(id_hash):
     """Commit objects factory. Save/look-up them in the __commits