# HG changeset patch # User Jun Wu # Date 2017-03-27 00:59:33 # Node ID 35738db2037a90f975f5bd2b00cc458c93f7ca2c # Parent 5b3d55a6821f5a004b42ff11ddbb6071e8ca1d6c 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. diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -788,14 +788,17 @@ def debugfileset(ui, repo, expr, **opts) @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')),