comparison mercurial/posix.py @ 31513:53575feed7c0

posix: tiptoe around tempfile module more delicately Some of the values inside the tempfile calls here are str on Python 3, so we've got to pass str in. Use fsdecode to work around the issue.
author Augie Fackler <augie@google.com>
date Sun, 19 Mar 2017 01:06:47 -0400
parents d96d010be4fa
children c6cbe5720353
comparison
equal deleted inserted replaced
31512:d96d010be4fa 31513:53575feed7c0
228 if os.path.isdir(cachedir): 228 if os.path.isdir(cachedir):
229 checkdir = cachedir 229 checkdir = cachedir
230 else: 230 else:
231 checkdir = path 231 checkdir = path
232 cachedir = None 232 cachedir = None
233 name = tempfile.mktemp(dir=checkdir, prefix='checklink-') 233 fscheckdir = pycompat.fsdecode(checkdir)
234 name = tempfile.mktemp(dir=fscheckdir,
235 prefix=r'checklink-')
236 name = pycompat.fsencode(name)
234 try: 237 try:
235 fd = None 238 fd = None
236 if cachedir is None: 239 if cachedir is None:
237 fd = tempfile.NamedTemporaryFile(dir=checkdir, 240 fd = tempfile.NamedTemporaryFile(dir=fscheckdir,
238 prefix='hg-checklink-') 241 prefix=r'hg-checklink-')
239 target = os.path.basename(fd.name) 242 target = pycompat.fsencode(os.path.basename(fd.name))
240 else: 243 else:
241 # create a fixed file to link to; doesn't matter if it 244 # create a fixed file to link to; doesn't matter if it
242 # already exists. 245 # already exists.
243 target = 'checklink-target' 246 target = 'checklink-target'
244 open(os.path.join(cachedir, target), 'w').close() 247 open(os.path.join(cachedir, target), 'w').close()