localrepo: validate directories before creating any
There is no meaningful change in behavior because wdir would
already exist in the case where we raised RepoError. But I think
the code is easier to read if we do all validation first then
take actions with side-effects.
Differential Revision: https://phab.mercurial-scm.org/D4706
--- a/mercurial/localrepo.py Wed Sep 19 16:15:22 2018 -0700
+++ b/mercurial/localrepo.py Wed Sep 19 16:51:57 2018 -0700
@@ -2798,13 +2798,14 @@
requirements = newreporequirements(ui, createopts=createopts)
wdirvfs = vfsmod.vfs(path, expandpath=True, realpath=True)
- if not wdirvfs.exists():
- wdirvfs.makedirs()
hgvfs = vfsmod.vfs(wdirvfs.join(b'.hg'))
if hgvfs.exists():
raise error.RepoError(_('repository %s already exists') % path)
+ if not wdirvfs.exists():
+ wdirvfs.makedirs()
+
hgvfs.makedir(notindexed=True)
if b'store' in requirements: