# HG changeset patch # User Durham Goode <durham@fb.com> # Date 1500295763 25200 # Mon Jul 17 05:49:23 2017 -0700 # Node ID 78959c8e5e607a00f23e0991760439923bf30dfb # Parent 006c837f918199d5324e75b727e67d4dd1455a59 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. diff --git a/hggit/__init__.py b/hggit/__init__.py --- a/hggit/__init__.py +++ b/hggit/__init__.py @@ -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): diff --git a/hggit/git_handler.py b/hggit/git_handler.py --- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -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 = {}