Mercurial > hg
view hgext/narrow/narrowcopies.py @ 38618:c829749e7639
shelve: directly handle the initial parent alignment
Shelve is currently sub-contracting some of its work to the rebase extension.
In order to make shelve more independent and flexible we would like shelve to
handle the parent alignment directly.
After this change, we no longer need to use rebase in shelve.
Differential Revision: https://phab.mercurial-scm.org/D3693
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 29 May 2018 00:30:50 +0200 |
parents | d0d5eef57fb0 |
children |
line wrap: on
line source
# narrowcopies.py - extensions to mercurial copies module to support narrow # clones # # Copyright 2017 Google, 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 from mercurial import ( copies, extensions, ) def setup(repo): def _computeforwardmissing(orig, a, b, match=None): missing = orig(a, b, match) narrowmatch = repo.narrowmatch() if narrowmatch.always(): return missing missing = [f for f in missing if narrowmatch(f)] return missing def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit, data): narrowmatch = repo.narrowmatch() if not narrowmatch(f): return orig(srcctx, dstctx, f, base, tca, remotebase, limit, data) extensions.wrapfunction(copies, '_computeforwardmissing', _computeforwardmissing) extensions.wrapfunction(copies, '_checkcopies', _checkcopies)