changeset 243:53b731d2a3e2

outgoing: don't crash when there are unpulled changesets
author Abderrahim Kitouni <a.kitouni@gmail.com>
date Sat, 08 Aug 2009 11:14:49 +0100
parents 0ac974306e08
children ea0728d8cdc2 c6d268886405
files git_handler.py
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/git_handler.py	Sat Aug 08 10:52:30 2009 +0100
+++ b/git_handler.py	Sat Aug 08 11:14:49 2009 +0100
@@ -138,8 +138,12 @@
 
         try:
             client.send_pack(path, changed, None)
-            new = [bin(self.map_hg_get(r)) for r in new_refs.values()]
-            old = dict((bin(self.map_hg_get(r)), 1) for r in old_refs.values())
+
+            changed_refs = [ref for ref, sha in new_refs.iteritems()
+                            if sha != old_refs.get(ref)]
+            new = [bin(self.map_hg_get(new_refs[ref])) for ref in changed_refs]
+            old = dict( (bin(self.map_hg_get(old_refs[r])), 1)
+                       for r in changed_refs)
 
             return old, new
         except HangupException: