mercurial/encoding.py
changeset 46319 3dfebba99ef6
parent 45957 89a2afe31e82
child 46819 d4ba4d51f85f
--- a/mercurial/encoding.py	Tue Dec 01 21:51:41 2020 -0500
+++ b/mercurial/encoding.py	Wed Dec 09 00:51:35 2020 -0500
@@ -298,7 +298,12 @@
     if pycompat.iswindows:
         # Python 3 on Windows issues a DeprecationWarning about using the bytes
         # API when os.getcwdb() is called.
-        getcwd = lambda: strtolocal(os.getcwd())  # re-exports
+        #
+        # Additionally, py3.8+ uppercases the drive letter when calling
+        # os.path.realpath(), which is used on ``repo.root``.  Since those
+        # strings are compared in various places as simple strings, also call
+        # realpath here.  See https://bugs.python.org/issue40368
+        getcwd = lambda: strtolocal(os.path.realpath(os.getcwd()))  # re-exports
     else:
         getcwd = os.getcwdb  # re-exports
 else: