changeset 258:1590c97d7af0

do not init the cache git repo unless needed (fixes issue 16 bb)
author Abderrahim Kitouni <a.kitouni@gmail.com>
date Thu, 15 Oct 2009 21:45:15 +0100
parents 75063203cfb5
children 6977263c4d80
files git_handler.py
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/git_handler.py
+++ b/git_handler.py
@@ -33,19 +33,16 @@
 
         self.paths = ui.configitems('paths')
 
-        self.init_if_missing()
-        self.load_git()
         self.load_map()
         self.load_tags()
 
     # make the git data directory
     def init_if_missing(self):
-        if not os.path.exists(self.gitdir):
+        if os.path.exists(self.gitdir):
+            self.git = Repo(self.gitdir)
+        else:
             os.mkdir(self.gitdir)
-            Repo.init_bare(self.gitdir)
-
-    def load_git(self):
-        self.git = Repo(self.gitdir)
+            self.git = Repo.init_bare(self.gitdir)
 
     ## FILE LOAD AND SAVE METHODS
 
@@ -176,6 +173,8 @@
 
     def export_git_objects(self):
         self.ui.status(_("importing Hg objects into Git\n"))
+        self.init_if_missing()
+
         nodes = [self.repo.lookup(n) for n in self.repo]
         export = [node for node in nodes if not hex(node) in self._map_hg]
         total = len(export)
@@ -352,6 +351,8 @@
 
     def import_git_objects(self, remote_name=None, refs=None):
         self.ui.status(_("importing Git objects into Hg\n"))
+        self.init_if_missing()
+
         # import heads and fetched tags as remote references
         todo = []
         done = set()