Mercurial > hg
view hgext/infinitepush/common.py @ 46941:d689d48527ea
histedit: use `get_unique_push_path`
Same as for `pathbomb`, this code does not support multiple destinations yet. It might in the future, probably with code put in common with patchwork, but for now lets use the dedicated API.
Differential Revision: https://phab.mercurial-scm.org/D10408
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 14 Apr 2021 12:01:27 +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