Mercurial > hg-git
changeset 1023:78959c8e5e60
wlock: take wlock when writing map file
Upstream Mercurial now has a devel-warning when writing to a file without taking
a lock. Since we already need write access to write the map file, let's take the
wlock as well.
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 17 Jul 2017 05:49:23 -0700 |
parents | 006c837f9181 |
children | 078c3912afce |
files | hggit/__init__.py hggit/git_handler.py |
diffstat | 2 files changed, 14 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/__init__.py Mon Jun 19 13:50:45 2017 -0500 +++ b/hggit/__init__.py Mon Jul 17 05:49:23 2017 -0700 @@ -270,8 +270,9 @@ gitsha, hgsha = line.strip().split(' ', 1) if hgsha in repo: new_map.append('%s %s\n' % (gitsha, hgsha)) - f = repo.vfs(GitHandler.map_file, 'wb') - map(f.write, new_map) + with repo.wlock(): + f = repo.vfs(GitHandler.map_file, 'wb') + map(f.write, new_map) ui.status(_('git commit map cleaned\n')) def findcommonoutgoing(orig, repo, other, *args, **kwargs):
--- a/hggit/git_handler.py Mon Jun 19 13:50:45 2017 -0500 +++ b/hggit/git_handler.py Mon Jul 17 05:49:23 2017 -0700 @@ -197,16 +197,17 @@ self._map_hg_real = map_hg_real def save_map(self, map_file): - file = self.repo.vfs(map_file, 'w+', atomictemp=True) - map_hg = self._map_hg - buf = cStringIO.StringIO() - bwrite = buf.write - for hgsha, gitsha in map_hg.iteritems(): - bwrite("%s %s\n" % (gitsha, hgsha)) - file.write(buf.getvalue()) - buf.close() - # If this complains, atomictempfile no longer has close - file.close() + with self.repo.wlock(): + file = self.repo.vfs(map_file, 'w+', atomictemp=True) + map_hg = self._map_hg + buf = cStringIO.StringIO() + bwrite = buf.write + for hgsha, gitsha in map_hg.iteritems(): + bwrite("%s %s\n" % (gitsha, hgsha)) + file.write(buf.getvalue()) + buf.close() + # If this complains, atomictempfile no longer has close + file.close() def load_tags(self): self.tags = {}