D5503: vfs: add support for repo names with `$` sign while using with env vars (issue5739)
navaneeth.suresh (Navaneeth Suresh)
phabricator at mercurial-scm.org
Mon Jan 7 08:38:34 UTC 2019
navaneeth.suresh created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
`$ foo=bar hg root` fails to recognise the repo `$foo`. I stopped expanding env
vars from vfs when there exists a repo with the same name as the env var.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5503
AFFECTED FILES
mercurial/vfs.py
tests/test-issue5739.t
CHANGE DETAILS
diff --git a/tests/test-issue5739.t b/tests/test-issue5739.t
new file mode 100644
--- /dev/null
+++ b/tests/test-issue5739.t
@@ -0,0 +1,8 @@
+-- going to create a repo with dollar sign which even
+works even when there exists an environment variable
+
+ $ mkdir '$foo'
+ $ cd '$foo'
+ $ hg init
+ $ foo=bar hg root
+ $TESTTMP/$foo
diff --git a/mercurial/vfs.py b/mercurial/vfs.py
--- a/mercurial/vfs.py
+++ b/mercurial/vfs.py
@@ -311,6 +311,10 @@
'''
def __init__(self, base, audit=True, cacheaudited=False, expandpath=False,
realpath=False):
+ if '$' in base and os.path.isdir(base):
+ # when there exists a repo '$foo' and an env var foo=bar, stop
+ # expanding path. refer issue5739.
+ expandpath = False
if expandpath:
base = util.expandpath(base)
if realpath:
To: navaneeth.suresh, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list