diff -r ca0c6d8c456b -r f98d4d0a299a mercurial/hg.py --- a/mercurial/hg.py Wed Jan 05 17:53:57 2022 +0100 +++ b/mercurial/hg.py Mon Jan 10 18:04:41 2022 -0500 @@ -10,6 +10,7 @@ import errno import os +import posixpath import shutil import stat import weakref @@ -1292,7 +1293,11 @@ source = bytes(subpath) else: p = urlutil.url(source) - p.path = os.path.normpath(b'%s/%s' % (p.path, subpath)) + if p.islocal(): + normpath = os.path.normpath + else: + normpath = posixpath.normpath + p.path = normpath(b'%s/%s' % (p.path, subpath)) source = bytes(p) other = peer(repo, opts, source) cleanupfn = other.close @@ -1363,7 +1368,11 @@ dest = bytes(subpath) else: p = urlutil.url(dest) - p.path = os.path.normpath(b'%s/%s' % (p.path, subpath)) + if p.islocal(): + normpath = os.path.normpath + else: + normpath = posixpath.normpath + p.path = normpath(b'%s/%s' % (p.path, subpath)) dest = bytes(p) branches = path.branch, opts.get(b'branch') or []