Mercurial > hg-stable
view hg @ 38193:c974320d20b9
terse: pconvert() entries added to the temporary terse dict for Windows
Recent additional testing revealed this problem on Windows:
--- tests/test-status.t.err
+++ tests/test-status.t.err
@@ -109,7 +109,7 @@
tweaking defaults works
$ hg status --cwd a --config ui.tweakdefaults=yes
- ? .
+ ? ../a/
? ../b/
? ../in_root
$ HGPLAIN=1 hg status --cwd a --config ui.tweakdefaults=yes
@@ -120,7 +120,7 @@
? b/in_b (glob)
? in_root
$ HGPLAINEXCEPT=tweakdefaults hg status --cwd a --config ui.tweakdefaults=yes
- ? .
+ ? ..\a\
? ../b/
? ../in_root (glob)
AFAICT, the status list (input and output here) is always in '/' format. The
'\' printed output on Windows is because each file is run through repo.pathto()
-> dirstate.pathto() -> util.pathto(). (And that function states that the
argument uses '/' separators.)
I fixed a similar issue in 362096cfdb1f, and given the apparent need for these
strings to be in '/' format, I wonder if cmdutil.dirnode() should be rewritten
to avoid os.path.join(). But it looks like all entries added to the temporary
terse dict should use '/' now, and cmdutil.tersedir() looks like the only user.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 22 May 2018 23:22:15 -0400 |
parents | 163fa0aea71e |
children | 5e78c100a215 |
line wrap: on
line source
#!/usr/bin/env python # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import import os import sys if os.environ.get('HGUNICODEPEDANTRY', False): try: reload(sys) sys.setdefaultencoding("undefined") except NameError: pass libdir = '@LIBDIR@' if libdir != '@' 'LIBDIR' '@': if not os.path.isabs(libdir): libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), libdir) libdir = os.path.abspath(libdir) sys.path.insert(0, libdir) # enable importing on demand to reduce startup time try: if sys.version_info[0] < 3 or sys.version_info >= (3, 6): import hgdemandimport; hgdemandimport.enable() except ImportError: sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path)) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) from mercurial import dispatch dispatch.run()