changeset 52:87d462a6b796

pushing nothing works better
author Scott Chacon <schacon@gmail.com>
date Wed, 29 Apr 2009 11:36:38 -0700
parents 1421d04f1ad2
children 5deb5cbd86aa
files TODO.txt dulwich/client.py git_handler.py
diffstat 3 files changed, 12 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/TODO.txt
+++ b/TODO.txt
@@ -2,6 +2,7 @@
 ==========
 * respect file modes on conversions
 * explicit file renames
+* integrate as native protocol handler (hg push git://...)
 * more tests
 * submodules?
 * .gitignore, etc - try to convert? 
@@ -9,24 +10,13 @@
 
 PUSH
 ==========
-
-Getting (and not sure why):
-  error: Ref refs/heads/master is at 093772e7fa2ee3c0d488bc44317cfe66d72f09ed  
-         but expected a89be0ca4c09782b6275a8e826c11a91b860a071
-  error: failed to lock refs/heads/master
-  (it works, but why is it doing this?)
-
 * push with branch names (w/ proper error messages)
-* update 'remote' references after push confirmation
-* push confirmation? is there extra data after the packfile upload?
-* output something after process is complete (master -> master etc)
-  - explain what branch mapping policy determined
+* explain what branch mapping policy determined when updating refs
 * convert tags to git
 * octopus merge explode re-implode
 
 FETCH
 ===========
-* add removed files to filechanged and raise IOError
 * gfetch command
 * only try to import non-mapped commits
 * tag conversion
--- a/dulwich/client.py
+++ b/dulwich/client.py
@@ -118,7 +118,7 @@
         if not changed_refs:
             print 'nothing changed'
             self.proto.write_pkt_line(None)
-            return
+            return None
         return_refs = copy.copy(changed_refs)
 
         want = []
--- a/git_handler.py
+++ b/git_handler.py
@@ -172,7 +172,7 @@
         if pgit_sha:
             return pgit_sha
 
-        print "converting revision " + str(rev)
+        self.ui.status("converting revision " + str(rev))
 
         # make sure parents are converted first
         parents = self.repo.parents(rev)
@@ -286,13 +286,15 @@
         changed = self.get_changed_refs
         genpack = self.generate_pack_contents
         try:
+            self.ui.status("creating and sending data\n")
             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)
+            if changed_refs:
+                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