changeset 4438:3900f684a150

Fix hg import --exact bug that hangs hg on failure.
author Eric Hopper <hopper@omnifarious.org>
date Thu, 17 May 2007 09:29:30 -0700
parents a210b40d0860
children 871ff96a86cc 82bc6aef8b43
files mercurial/commands.py mercurial/localrepo.py
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1565,7 +1565,7 @@ def import_(ui, repo, patch1, *patches, 
             n = repo.commit(files, message, user, date, wlock=wlock, lock=lock)
             if opts.get('exact'):
                 if hex(n) != nodeid:
-                    repo.rollback()
+                    repo.rollback(wlock=wlock, lock=lock)
                     raise util.Abort(_('patch is damaged or loses information'))
         finally:
             os.unlink(tmpname)
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -586,10 +586,11 @@ class localrepository(repo.repository):
             self.ui.warn(_("no interrupted transaction available\n"))
             return False
 
-    def rollback(self, wlock=None):
+    def rollback(self, wlock=None, lock=None):
         if not wlock:
             wlock = self.wlock()
-        l = self.lock()
+        if not lock:
+            lock = self.lock()
         if os.path.exists(self.sjoin("undo")):
             self.ui.status(_("rolling back last transaction\n"))
             transaction.rollback(self.sopener, self.sjoin("undo"))