diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -42,7 +42,7 @@ class localrepository(repo.repository): if not os.path.isdir(self.path): if create: if not os.path.exists(path): - os.mkdir(path) + util.makedirs(path) os.mkdir(self.path) requirements = ["revlogv1"] if self.ui.configbool('format', 'usestore', True): diff --git a/tests/test-init b/tests/test-init --- a/tests/test-init +++ b/tests/test-init @@ -84,3 +84,6 @@ for i in bundle file hg http https old-h test -d "$i" -a -d "$i/.hg" && echo "ok" || echo "failed" done +echo "# creating 'local/sub/repo'" +hg init local/sub/repo +checknewrepo local/sub/repo diff --git a/tests/test-init.out b/tests/test-init.out --- a/tests/test-init.out +++ b/tests/test-init.out @@ -73,3 +73,9 @@ ok ok # hg init "with space" ok +# creating 'local/sub/repo' +store created +00changelog.i created +revlogv1 +store +fncache