transplant: fix small bug when a patch fails while using --filter stable
authorSune Foldager <cryo@cyanite.org>
Thu, 03 Dec 2009 11:06:44 +0100
branchstable
changeset 9995 eba6c8687fd2
parent 9993 8bce1e0d2801
child 9996 2770d03ae49f
transplant: fix small bug when a patch fails while using --filter
hgext/transplant.py
tests/test-transplant
tests/test-transplant.out
--- a/hgext/transplant.py	Thu Dec 03 14:14:44 2009 +0900
+++ b/hgext/transplant.py	Thu Dec 03 11:06:44 2009 +0100
@@ -227,8 +227,6 @@
                 finally:
                     files = patch.updatedir(self.ui, repo, files)
             except Exception, inst:
-                if filter:
-                    os.unlink(patchfile)
                 seriespath = os.path.join(self.path, 'series')
                 if os.path.exists(seriespath):
                     os.unlink(seriespath)
--- a/tests/test-transplant	Thu Dec 03 14:14:44 2009 +0900
+++ b/tests/test-transplant	Thu Dec 03 11:06:44 2009 +0100
@@ -136,6 +136,15 @@
 hg log --template '{rev} {parents} {desc}\n'
 cd ..
 
+echo '% test filter with failed patch'
+cd filter
+hg up 0
+echo foo > b1
+hg ci -d '0 0' -Am foo
+hg transplant 1 --filter ./test-filter |\
+    sed 's/filtering.*/filtering/g'
+cd ..
+
 echo '% test with a win32ext like setup (differing EOLs)'
 hg init twin1
 cd twin1
@@ -156,4 +165,4 @@
 hg ci -m addb
 hg transplant -s ../twin1 tip
 python -c "print repr(file('b', 'rb').read())"
-cd ..
\ No newline at end of file
+cd ..
--- a/tests/test-transplant.out	Thu Dec 03 14:14:44 2009 +0900
+++ b/tests/test-transplant.out	Thu Dec 03 11:06:44 2009 +0100
@@ -159,6 +159,17 @@
 2  b2
 1  b1
 0  r2
+% test filter with failed patch
+0 files updated, 0 files merged, 3 files removed, 0 files unresolved
+adding b1
+adding test-filter
+created new head
+file b1 already exists
+1 out of 1 hunks FAILED -- saving rejects to file b1.rej
+abort: Fix up the merge and run hg transplant --continue
+filtering
+applying 348b36d0b6a5
+patch failed to apply
 % test with a win32ext like setup (differing EOLs)
 adding a
 adding b