Mercurial > hg-stable
changeset 23102:16da812ad970 stable
transaction: extract file generation into its own function
We extract the code generating files into its own function. We are
about to move this code around to fix a bug. We'll need it in a
function soon to reuse it for "pending" logic. So we move the code
into a function instead of moving it twice.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 29 Sep 2014 00:59:25 -0700 |
parents | b564330d4b1f |
children | 29bfa964d6d8 |
files | mercurial/transaction.py |
diffstat | 1 files changed, 21 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/transaction.py Tue Oct 28 23:05:19 2014 -0400 +++ b/mercurial/transaction.py Mon Sep 29 00:59:25 2014 -0700 @@ -205,6 +205,26 @@ assert vfs is None or filenames == ('bookmarks',) self._filegenerators[genid] = (order, filenames, genfunc, vfs) + def _generatefiles(self): + # write files registered for generation + for entry in sorted(self._filegenerators.values()): + order, filenames, genfunc, vfs = entry + if vfs is None: + vfs = self.opener + files = [] + try: + for name in filenames: + # Some files are already backed up when creating the + # localrepo. Until this is properly fixed we disable the + # backup for them. + if name not in ('phaseroots', 'bookmarks'): + self.addbackup(name) + files.append(vfs(name, 'w', atomictemp=True)) + genfunc(*files) + finally: + for f in files: + f.close() + @active def find(self, file): if file in self.map: @@ -246,25 +266,7 @@ @active def close(self): '''commit the transaction''' - # write files registered for generation - for entry in sorted(self._filegenerators.values()): - order, filenames, genfunc, vfs = entry - if vfs is None: - vfs = self.opener - files = [] - try: - for name in filenames: - # Some files are already backed up when creating the - # localrepo. Until this is properly fixed we disable the - # backup for them. - if name not in ('phaseroots', 'bookmarks'): - self.addbackup(name) - files.append(vfs(name, 'w', atomictemp=True)) - genfunc(*files) - finally: - for f in files: - f.close() - + self._generatefiles() if self.count == 1 and self.onclose is not None: self.onclose()