Mercurial > hg
view hgext/infinitepush/common.py @ 40753:9199548525fc
subrepo-git: use an official origvfs when appropriate
The origvfs has the auditor properly set and can move file without issue.
The current code is currently working without errors because rename are not
audited, yet.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 22 Nov 2018 20:01:28 +0100 |
parents | 090e5f3900b7 |
children | 2372284d9457 |
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 ('remotenames' in extensions._extensions and ui.configbool('remotenames', '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('%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, r'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