# HG changeset patch # User Matt Harbison # Date 1537573703 14400 # Node ID 24e493ec222940123642f4dfcb8b3e5f0248d546 # Parent 94c25f694ec3e06e2ecd4cc35c5c984abddf97fc py3: rename pycompat.getcwd() to encoding.getcwd() (API) We need to avoid os.getcwdb() on Windows to avoid DeprecationWarnings, and we need encoding.strtolocal() to encode the result of os.getcwd(). diff -r 94c25f694ec3 -r 24e493ec2229 contrib/check-code.py --- a/contrib/check-code.py Mon Sep 24 22:46:22 2018 -0400 +++ b/contrib/check-code.py Fri Sep 21 19:48:23 2018 -0400 @@ -503,7 +503,7 @@ [ (r'os\.environ', "use encoding.environ instead (py3)", r'#.*re-exports'), (r'os\.name', "use pycompat.osname instead (py3)"), - (r'os\.getcwd', "use pycompat.getcwd instead (py3)"), + (r'os\.getcwd', "use encoding.getcwd instead (py3)", r'#.*re-exports'), (r'os\.sep', "use pycompat.ossep instead (py3)"), (r'os\.pathsep', "use pycompat.ospathsep instead (py3)"), (r'os\.altsep', "use pycompat.osaltsep instead (py3)"), diff -r 94c25f694ec3 -r 24e493ec2229 hgext/convert/cvs.py --- a/hgext/convert/cvs.py Mon Sep 24 22:46:22 2018 -0400 +++ b/hgext/convert/cvs.py Fri Sep 21 19:48:23 2018 -0400 @@ -15,7 +15,6 @@ from mercurial import ( encoding, error, - pycompat, util, ) from mercurial.utils import ( @@ -74,7 +73,7 @@ raise error.Abort(_('revision %s is not a patchset number') % self.revs[0]) - d = pycompat.getcwd() + d = encoding.getcwd() try: os.chdir(self.path) id = None diff -r 94c25f694ec3 -r 24e493ec2229 hgext/convert/subversion.py --- a/hgext/convert/subversion.py Mon Sep 24 22:46:22 2018 -0400 +++ b/hgext/convert/subversion.py Fri Sep 21 19:48:23 2018 -0400 @@ -1127,7 +1127,7 @@ self.delexec = [] self.copies = [] self.wc = None - self.cwd = pycompat.getcwd() + self.cwd = encoding.getcwd() created = False if os.path.isfile(os.path.join(path, '.svn', 'entries')): @@ -1147,7 +1147,7 @@ path = '/' + path path = 'file://' + path - wcpath = os.path.join(pycompat.getcwd(), os.path.basename(path) + + wcpath = os.path.join(encoding.getcwd(), os.path.basename(path) + '-wc') ui.status(_('initializing svn working copy %r\n') % os.path.basename(wcpath)) diff -r 94c25f694ec3 -r 24e493ec2229 hgext/fastannotate/commands.py --- a/hgext/fastannotate/commands.py Mon Sep 24 22:46:22 2018 -0400 +++ b/hgext/fastannotate/commands.py Fri Sep 21 19:48:23 2018 -0400 @@ -12,6 +12,7 @@ from mercurial.i18n import _ from mercurial import ( commands, + encoding, error, extensions, patch, @@ -41,7 +42,7 @@ if perfhack: # cwd related to reporoot reporoot = os.path.dirname(repo.path) - reldir = os.path.relpath(pycompat.getcwd(), reporoot) + reldir = os.path.relpath(encoding.getcwd(), reporoot) if reldir == '.': reldir = '' if any(opts.get(o[1]) for o in commands.walkopts): # a) diff -r 94c25f694ec3 -r 24e493ec2229 hgext/mq.py --- a/hgext/mq.py Mon Sep 24 22:46:22 2018 -0400 +++ b/hgext/mq.py Fri Sep 21 19:48:23 2018 -0400 @@ -3585,7 +3585,7 @@ raise error.Abort(_('only a local queue repository ' 'may be initialized')) else: - repopath = cmdutil.findrepo(pycompat.getcwd()) + repopath = cmdutil.findrepo(encoding.getcwd()) if not repopath: raise error.Abort(_('there is no Mercurial repository here ' '(.hg not found)')) diff -r 94c25f694ec3 -r 24e493ec2229 hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py Mon Sep 24 22:46:22 2018 -0400 +++ b/hgext/narrow/narrowcommands.py Fri Sep 21 19:48:23 2018 -0400 @@ -69,7 +69,7 @@ narrowspecfile = opts['narrowspec'] if narrowspecfile: - filepath = os.path.join(pycompat.getcwd(), narrowspecfile) + filepath = os.path.join(encoding.getcwd(), narrowspecfile) ui.status(_("reading narrowspec from '%s'\n") % filepath) try: fdata = util.readfile(filepath) @@ -349,7 +349,7 @@ newrules = opts.get('import_rules') if newrules: try: - filepath = os.path.join(pycompat.getcwd(), newrules) + filepath = os.path.join(encoding.getcwd(), newrules) fdata = util.readfile(filepath) except IOError as inst: raise error.Abort(_("cannot read narrowspecs from '%s': %s") % diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/bundlerepo.py Fri Sep 21 19:48:23 2018 -0400 @@ -25,6 +25,7 @@ changelog, cmdutil, discovery, + encoding, error, exchange, filelog, @@ -432,7 +433,7 @@ return bundlepeer(self) def getcwd(self): - return pycompat.getcwd() # always outside the repo + return encoding.getcwd() # always outside the repo # Check if parents exist in localrepo before setting def setparents(self, p1, p2=nullid): @@ -452,13 +453,13 @@ parentpath = ui.config("bundle", "mainreporoot") if not parentpath: # try to find the correct path to the working directory repo - parentpath = cmdutil.findrepo(pycompat.getcwd()) + parentpath = cmdutil.findrepo(encoding.getcwd()) if parentpath is None: parentpath = '' if parentpath: # Try to make the full path relative so we get a nice, short URL. # In particular, we don't want temp dir names in test outputs. - cwd = pycompat.getcwd() + cwd = encoding.getcwd() if parentpath == cwd: parentpath = '' else: diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/cmdutil.py Fri Sep 21 19:48:23 2018 -0400 @@ -581,7 +581,7 @@ unresolvedlist = [f for f in mergestate.unresolved() if m(f)] if unresolvedlist: mergeliststr = '\n'.join( - [' %s' % util.pathto(repo.root, pycompat.getcwd(), path) + [' %s' % util.pathto(repo.root, encoding.getcwd(), path) for path in unresolvedlist]) msg = _('''Unresolved merge conflicts: @@ -1110,7 +1110,7 @@ raise error.CommandError(cmd, _('invalid arguments')) if not os.path.isfile(file_): raise error.Abort(_("revlog '%s' not found") % file_) - r = revlog.revlog(vfsmod.vfs(pycompat.getcwd(), audit=False), + r = revlog.revlog(vfsmod.vfs(encoding.getcwd(), audit=False), file_[:-2] + ".i") return r @@ -2629,7 +2629,7 @@ committext = buildcommittext(repo, ctx, subs, extramsg) # run editor in the repository root - olddir = pycompat.getcwd() + olddir = encoding.getcwd() os.chdir(repo.root) # make in-memory changes visible to external process diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/commandserver.py --- a/mercurial/commandserver.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/commandserver.py Fri Sep 21 19:48:23 2018 -0400 @@ -26,7 +26,6 @@ from . import ( encoding, error, - pycompat, util, ) from .utils import ( @@ -161,7 +160,7 @@ based stream to fout. """ def __init__(self, ui, repo, fin, fout): - self.cwd = pycompat.getcwd() + self.cwd = encoding.getcwd() # developer config: cmdserver.log logpath = ui.config("cmdserver", "log") diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/debugcommands.py Fri Sep 21 19:48:23 2018 -0400 @@ -99,7 +99,7 @@ """find the ancestor revision of two revisions in a given index""" if len(args) == 3: index, rev1, rev2 = args - r = revlog.revlog(vfsmod.vfs(pycompat.getcwd(), audit=False), index) + r = revlog.revlog(vfsmod.vfs(encoding.getcwd(), audit=False), index) lookup = r.lookup elif len(args) == 2: if not repo: @@ -503,7 +503,7 @@ spaces = opts.get(r'spaces') dots = opts.get(r'dots') if file_: - rlog = revlog.revlog(vfsmod.vfs(pycompat.getcwd(), audit=False), + rlog = revlog.revlog(vfsmod.vfs(encoding.getcwd(), audit=False), file_) revs = set((int(r) for r in revs)) def events(): @@ -1754,7 +1754,7 @@ def complete(path, acceptable): dirstate = repo.dirstate - spec = os.path.normpath(os.path.join(pycompat.getcwd(), path)) + spec = os.path.normpath(os.path.join(encoding.getcwd(), path)) rootdir = repo.root + pycompat.ossep if spec != repo.root and not spec.startswith(rootdir): return [], [] diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/dirstate.py --- a/mercurial/dirstate.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/dirstate.py Fri Sep 21 19:48:23 2018 -0400 @@ -210,7 +210,7 @@ forcecwd = self._ui.config('ui', 'forcecwd') if forcecwd: return forcecwd - return pycompat.getcwd() + return encoding.getcwd() def getcwd(self): '''Return the path from which a canonical path is calculated. diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/dispatch.py --- a/mercurial/dispatch.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/dispatch.py Fri Sep 21 19:48:23 2018 -0400 @@ -748,7 +748,7 @@ """ if wd is None: try: - wd = pycompat.getcwd() + wd = encoding.getcwd() except OSError as e: raise error.Abort(_("error getting current working directory: %s") % encoding.strtolocal(e.strerror)) @@ -968,7 +968,7 @@ if not path: raise error.RepoError(_("no repository found in" " '%s' (.hg not found)") - % pycompat.getcwd()) + % encoding.getcwd()) raise if repo: ui = repo.ui diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/encoding.py --- a/mercurial/encoding.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/encoding.py Fri Sep 21 19:48:23 2018 -0400 @@ -233,6 +233,13 @@ environ = dict((tolocal(k.encode(u'utf-8')), tolocal(v.encode(u'utf-8'))) for k, v in os.environ.items()) # re-exports +if pycompat.ispy3: + # os.getcwd() on Python 3 returns string, but it has os.getcwdb() which + # returns bytes. + getcwd = os.getcwdb # re-exports +else: + getcwd = os.getcwd # re-exports + # How to treat ambiguous-width characters. Set to 'wide' to treat as wide. _wide = _sysstr(environ.get("HGENCODINGAMBIGUOUS", "narrow") == "wide" and "WFA" or "WF") diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/hook.py --- a/mercurial/hook.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/hook.py Fri Sep 21 19:48:23 2018 -0400 @@ -150,7 +150,7 @@ if repo: cwd = repo.root else: - cwd = pycompat.getcwd() + cwd = encoding.getcwd() r = ui.system(cmd, environ=env, cwd=cwd, blockedtag='exthook-%s' % (name,)) duration = util.timer() - starttime diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/merge.py --- a/mercurial/merge.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/merge.py Fri Sep 21 19:48:23 2018 -0400 @@ -27,6 +27,7 @@ ) from . import ( copies, + encoding, error, filemerge, match as matchmod, @@ -1436,7 +1437,7 @@ def _getcwd(): try: - return pycompat.getcwd() + return encoding.getcwd() except OSError as err: if err.errno == errno.ENOENT: return None diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/pycompat.py --- a/mercurial/pycompat.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/pycompat.py Fri Sep 21 19:48:23 2018 -0400 @@ -97,9 +97,7 @@ osaltsep = os.altsep if osaltsep: osaltsep = osaltsep.encode('ascii') - # os.getcwd() on Python 3 returns string, but it has os.getcwdb() which - # returns bytes. - getcwd = os.getcwdb + sysplatform = sys.platform.encode('ascii') sysexecutable = sys.executable if sysexecutable: @@ -393,7 +391,6 @@ if getattr(sys, 'argv', None) is not None: sysargv = sys.argv sysplatform = sys.platform - getcwd = os.getcwd sysexecutable = sys.executable shlexsplit = shlex.split bytesio = cStringIO.StringIO diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/ui.py --- a/mercurial/ui.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/ui.py Fri Sep 21 19:48:23 2018 -0400 @@ -447,7 +447,7 @@ if section in (None, 'paths'): # expand vars and ~ # translate paths relative to root (or home) into absolute paths - root = root or pycompat.getcwd() + root = root or encoding.getcwd() for c in self._tcfg, self._ucfg, self._ocfg: for n, p in c.items('paths'): # Ignore sub-options. diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/unionrepo.py --- a/mercurial/unionrepo.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/unionrepo.py Fri Sep 21 19:48:23 2018 -0400 @@ -19,13 +19,13 @@ from . import ( changelog, cmdutil, + encoding, error, filelog, localrepo, manifest, mdiff, pathutil, - pycompat, revlog, util, vfs as vfsmod, @@ -240,7 +240,7 @@ return unionpeer(self) def getcwd(self): - return pycompat.getcwd() # always outside the repo + return encoding.getcwd() # always outside the repo def instance(ui, path, create, intents=None, createopts=None): if create: @@ -248,13 +248,13 @@ parentpath = ui.config("bundle", "mainreporoot") if not parentpath: # try to find the correct path to the working directory repo - parentpath = cmdutil.findrepo(pycompat.getcwd()) + parentpath = cmdutil.findrepo(encoding.getcwd()) if parentpath is None: parentpath = '' if parentpath: # Try to make the full path relative so we get a nice, short URL. # In particular, we don't want temp dir names in test outputs. - cwd = pycompat.getcwd() + cwd = encoding.getcwd() if parentpath == cwd: parentpath = '' else: diff -r 94c25f694ec3 -r 24e493ec2229 mercurial/win32.py --- a/mercurial/win32.py Mon Sep 24 22:46:22 2018 -0400 +++ b/mercurial/win32.py Fri Sep 21 19:48:23 2018 -0400 @@ -584,7 +584,7 @@ # TODO: CreateProcessW on py3? res = _kernel32.CreateProcessA( None, encoding.strtolocal(args), None, None, False, _CREATE_NO_WINDOW, - env, pycompat.getcwd(), ctypes.byref(si), ctypes.byref(pi)) + env, encoding.getcwd(), ctypes.byref(si), ctypes.byref(pi)) if not res: raise ctypes.WinError()