patch.pathtransform: prepend prefix even if strip is 0
Silly oversight by me.
--- a/mercurial/patch.py Tue Oct 28 22:32:18 2014 -0700
+++ b/mercurial/patch.py Wed Mar 18 20:59:06 2015 -0700
@@ -1465,6 +1465,8 @@
('', ' a/b/c')
>>> pathtransform(' a/b/c ', 2, '')
('a/b/', 'c')
+ >>> pathtransform('a/b/c', 0, 'd/e/')
+ ('', 'd/e/a/b/c')
>>> pathtransform(' a//b/c ', 2, 'd/e/')
('a//b/', 'd/e/c')
>>> pathtransform('a/b/c', 3, '')
@@ -1474,7 +1476,7 @@
pathlen = len(path)
i = 0
if strip == 0:
- return '', path.rstrip()
+ return '', prefix + path.rstrip()
count = strip
while count > 0:
i = path.find('/', i)
--- a/tests/test-import-git.t Tue Oct 28 22:32:18 2014 -0700
+++ b/tests/test-import-git.t Wed Mar 18 20:59:06 2015 -0700
@@ -626,6 +626,29 @@
adding dir/d
adding dir/dir2/b
adding dir/dir2/c
+ $ hg import --no-commit --prefix dir/ - <<EOF
+ > diff --git a/a b/a
+ > --- /dev/null
+ > +++ b/a
+ > @@ -0,0 +1 @@
+ > +aaa
+ > diff --git a/d b/d
+ > --- a/d
+ > +++ b/d
+ > @@ -1,1 +1,2 @@
+ > d
+ > +dd
+ > EOF
+ applying patch from stdin
+ $ cat dir/a
+ aaa
+ $ cat dir/d
+ d
+ dd
+ $ hg revert -aC
+ forgetting dir/a (glob)
+ reverting dir/d (glob)
+ $ rm dir/a
(test that prefixes are relative to the root)
$ mkdir tmpdir
$ cd tmpdir