diff hgext/imerge.py @ 5064:420e1166a876

Merge with crew
author Brendan Cully <brendan@kublai.com>
date Sat, 04 Aug 2007 09:33:10 -0700
parents 86327d13d916 34a54cc5df1b
children 12930b97a729
line wrap: on
line diff
--- a/hgext/imerge.py
+++ b/hgext/imerge.py
@@ -44,7 +44,8 @@ class ImergeStateFile(object):
         if self.im.repo.dirstate.parents()[0] != p1.node():
             hg.clean(self.im.repo, p1.node())
         self.im.start(p2.node())
-        tf.extractall(self.im.repo.root)
+        for tarinfo in tf:
+            tf.extract(tarinfo, self.im.repo.root)
         self.im.load()
 
 class Imerge(object):
@@ -91,16 +92,18 @@ class Imerge(object):
 
         if not os.path.isdir(self.path):
             os.mkdir(self.path)
-        fd = self.opener('status', 'wb')
+        statusfile = self.opener('status', 'wb')
 
         out = [hex(n.node()) for n in self.wctx.parents()]
         out.append(str(len(self.conflicts)))
-        for f in sorted(self.conflicts):
-            out.append(f)
-            out.extend(self.conflicts[f])
+        conflicts = self.conflicts.items()
+        conflicts.sort()
+        for fw, fd_fo in conflicts:
+            out.append(fw)
+            out.extend(fd_fo)
         out.extend(self.resolved)
 
-        fd.write('\0'.join(out))
+        statusfile.write('\0'.join(out))
 
     def remaining(self):
         return [f for f in self.conflicts if f not in self.resolved]
@@ -163,7 +166,8 @@ class Imerge(object):
             if fn not in self.conflicts:
                 raise util.Abort('%s is not in the merge set' % fn)
             resolved[fn] = True
-        self.resolved = sorted(resolved)
+        self.resolved = resolved.keys()
+        self.resolved.sort()
         self.save()
         return 0
 
@@ -173,7 +177,8 @@ class Imerge(object):
             if fn not in resolved:
                 raise util.Abort('%s is not resolved' % fn)
             del resolved[fn]
-        self.resolved = sorted(resolved)
+        self.resolved = resolved.keys()
+        self.resolved.sort()
         self.save()
         return 0
 
@@ -263,7 +268,8 @@ def dispatch(im, args, opts):
     if not cmd:
         raise cmdutil.UnknownCommand('imerge ' + c)
     if len(cmd) > 1:
-        raise cmdutil.AmbiguousCommand('imerge ' + c, sorted(cmd))
+        cmd.sort()
+        raise cmdutil.AmbiguousCommand('imerge ' + c, cmd)
     cmd = cmd[0]
 
     func = subcmdtable[cmd]