Mercurial > hg
view hgext/infinitepush/common.py @ 47468:9b70aa7bcbab
censor: extract the part about writing the other revision in a function
The v2_censor function is huge, now that its content has settled a bit it is a
good time to split individual part inside dedicated function.
We continue with a small function that add a non-censored revision back to the
revlog.
Differential Revision: https://phab.mercurial-scm.org/D10899
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 22 Jun 2021 21:49:31 +0200 |
parents | 9f70512ae2cf |
children | 6000f5b25c9b |
line wrap: on
line source
# Copyright 2017 Facebook, Inc. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import import os from mercurial.node import hex from mercurial import ( error, extensions, pycompat, ) def isremotebooksenabled(ui): return b'remotenames' in extensions._extensions and ui.configbool( b'remotenames', b'bookmarks' ) def downloadbundle(repo, unknownbinhead): index = repo.bundlestore.index store = repo.bundlestore.store bundleid = index.getbundle(hex(unknownbinhead)) if bundleid is None: raise error.Abort(b'%s head is not known' % hex(unknownbinhead)) bundleraw = store.read(bundleid) return _makebundlefromraw(bundleraw) def _makebundlefromraw(data): fp = None fd, bundlefile = pycompat.mkstemp() try: # guards bundlefile try: # guards fp fp = os.fdopen(fd, 'wb') fp.write(data) finally: fp.close() except Exception: try: os.unlink(bundlefile) except Exception: # we would rather see the original exception pass raise return bundlefile