D5503: vfs: add support for repo names with `$` when using with env vars (issue5739)

navaneeth.suresh (Navaneeth Suresh) phabricator at mercurial-scm.org
Mon Jan 7 07:08:57 EST 2019


navaneeth.suresh updated this revision to Diff 13046.
navaneeth.suresh retitled this revision from "vfs: add support for repo names with `$` sign while using with env vars (issue5739)" to "vfs: add support for repo names with `$` when using with env vars (issue5739)".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5503?vs=13025&id=13046

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