diff -r 4e1eab73c53d -r b1ce25a40826 mercurial/posix.py --- a/mercurial/posix.py Thu Nov 17 15:31:19 2016 -0800 +++ b/mercurial/posix.py Thu Nov 17 12:59:36 2016 +0100 @@ -160,7 +160,10 @@ try: EXECFLAGS = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH - fh, fn = tempfile.mkstemp(dir=path, prefix='hg-checkexec-') + cachedir = os.path.join(path, '.hg', 'cache') + if not os.path.isdir(cachedir): + cachedir = path + fh, fn = tempfile.mkstemp(dir=cachedir, prefix='hg-checkexec-') try: os.close(fh) m = os.stat(fn).st_mode & 0o777