# HG changeset patch # User Siddharth Agarwal # Date 1426737546 25200 # Node ID 885a573fa619cceca33663ce3b02d988c45bcf38 # Parent 5cb459dc32d209653a3e5d77749cf989ab9a51e4 patch.pathtransform: prepend prefix even if strip is 0 Silly oversight by me. diff -r 5cb459dc32d2 -r 885a573fa619 mercurial/patch.py --- 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) diff -r 5cb459dc32d2 -r 885a573fa619 tests/test-import-git.t --- 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/ - < 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