diff -r feb4797c676e -r 5dcc58649b1a mercurial/phases.py --- a/mercurial/phases.py Thu Aug 07 14:40:02 2014 -0700 +++ b/mercurial/phases.py Thu Aug 07 14:41:00 2014 -0700 @@ -196,11 +196,14 @@ return f = self.opener('phaseroots', 'w', atomictemp=True) try: - for phase, roots in enumerate(self.phaseroots): - for h in roots: - f.write('%i %s\n' % (phase, hex(h))) + self._write(f) finally: f.close() + + def _write(self, fp): + for phase, roots in enumerate(self.phaseroots): + for h in roots: + fp.write('%i %s\n' % (phase, hex(h))) self.dirty = False def _updateroots(self, phase, newroots):