diff git_handler.py @ 47:3b62270c1fad

writing some status output after a push, updating local bookmarks
author Scott Chacon <schacon@gmail.com>
date Wed, 29 Apr 2009 10:03:16 -0700 (2009-04-29)
parents fcfb4db848e1
children 1421d04f1ad2
line wrap: on
line diff
--- a/git_handler.py
+++ b/git_handler.py
@@ -286,8 +286,13 @@
         changed = self.get_changed_refs
         genpack = self.generate_pack_contents
         try:
-            client.send_pack(path, changed, genpack)
-            # TODO : self.git.set_remote_refs(refs, remote_name)
+            changed_refs = client.send_pack(path, changed, genpack)
+            new_refs = {}
+            for old, new, ref in changed_refs:
+                self.ui.status("    "+ remote_name + "::" + ref + " : GIT:" + old[0:8] + " => GIT:" + new[0:8] + "\n")
+                new_refs[ref] = new
+            self.git.set_remote_refs(new_refs, remote_name)
+            self.update_hg_bookmarks(remote_name)
         except:
             raise
 
@@ -404,18 +409,20 @@
             commit = convert_list[csha]
             self.import_git_commit(commit)
 
-        # update Hg bookmarks
-        bms = {}
-        for head, sha in self.git.remote_refs(remote_name).iteritems():
-            hgsha = hex_to_sha(self.map_hg_get(sha))
-            if not head == 'HEAD':
-                bms[remote_name + '/' + head] = hgsha
+        self.update_hg_bookmarks(remote_name)
+
+    def update_hg_bookmarks(self, remote_name):
         try:
+            bms = bookmarks.parse(self.repo)
+            for head, sha in self.git.remote_refs(remote_name).iteritems():
+                hgsha = hex_to_sha(self.map_hg_get(sha))
+                if not head == 'HEAD':
+                    bms[remote_name + '/' + head] = hgsha
             bookmarks.write(self.repo, bms)
         except AttributeError:
             self.repo.ui.warn('creating bookmarks failed, do you have'
                               ' bookmarks enabled?\n')
-
+        
     def import_git_commit(self, commit):
         print "importing: " + commit.id
         # TODO : look for HG metadata in the message and use it
@@ -457,12 +464,6 @@
         gitsha = commit.id
         self.map_set(gitsha, p2)
 
-    def getfilectx(self, source, repo, memctx, f):
-        v = files[f]
-        data = source.getfile(f, v)
-        e = source.getmode(f, v)
-        return context.memfilectx(f, data, 'l' in e, 'x' in e, copies.get(f))
-
     def check_bookmarks(self):
         if self.ui.config('extensions', 'hgext.bookmarks') is not None:
             print "YOU NEED TO SETUP BOOKMARKS"