Mercurial > hg
changeset 31634:35738db2037a
debugfsinfo: improve case-sensitive testing
Previously the case-sensitive test was for the current directory, and is
fragile with errors, and could remove a real file called ".debugfsinfo".
This patch improves the case-sensitive testing so it test the given path
using a unique temporary file, and does not crash on errors.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 26 Mar 2017 17:59:33 -0700 |
parents | 5b3d55a6821f |
children | 632e07e72a22 |
files | mercurial/debugcommands.py |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Sun Mar 26 17:29:37 2017 -0700 +++ b/mercurial/debugcommands.py Sun Mar 26 17:59:33 2017 -0700 @@ -788,14 +788,17 @@ @command('debugfsinfo', [], _('[PATH]'), norepo=True) def debugfsinfo(ui, path="."): """show information detected about current filesystem""" - util.writefile('.debugfsinfo', '') ui.write(('exec: %s\n') % (util.checkexec(path) and 'yes' or 'no')) ui.write(('fstype: %s\n') % (util.getfstype(path) or '(unknown)')) ui.write(('symlink: %s\n') % (util.checklink(path) and 'yes' or 'no')) ui.write(('hardlink: %s\n') % (util.checknlink(path) and 'yes' or 'no')) - ui.write(('case-sensitive: %s\n') % (util.fscasesensitive('.debugfsinfo') - and 'yes' or 'no')) - util.tryunlink('.debugfsinfo') + casesensitive = '(unknown)' + try: + with tempfile.NamedTemporaryFile(prefix='.debugfsinfo', dir=path) as f: + casesensitive = util.fscasesensitive(f.name) and 'yes' or 'no' + except OSError: + pass + ui.write(('case-sensitive: %s\n') % casesensitive) @command('debuggetbundle', [('H', 'head', [], _('id of head node'), _('ID')),