diff --git a/mercurial/dirstateguard.py b/mercurial/dirstateguard.py --- a/mercurial/dirstateguard.py +++ b/mercurial/dirstateguard.py @@ -7,6 +7,7 @@ from __future__ import absolute_import +import os from .i18n import _ from . import ( @@ -34,11 +35,12 @@ self._repo = repo self._active = False self._closed = False - self._backupname = b'dirstate.backup.%s.%d' % (name, id(self)) - self._narrowspecbackupname = b'narrowspec.backup.%s.%d' % ( - name, - id(self), - ) + def getname(prefix): + fd, fname = repo.vfs.mkstemp(prefix=prefix) + os.close(fd) + return fname + self._backupname = getname(b'dirstate.backup.%s.' % name) + self._narrowspecbackupname = getname(b'narrowspec.backup.%s.' % name) repo.dirstate.savebackup(repo.currenttransaction(), self._backupname) narrowspec.savewcbackup(repo, self._narrowspecbackupname) self._active = True