Mercurial > hg
comparison hgext/narrow/narrowcopies.py @ 36079:a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Adjustments:
* renamed src to hgext/narrow
* marked extension experimental
* added correct copyright header where it was missing
* updated hgrc extension enable line in library.sh
* renamed library.sh to narrow-library.sh
* dropped all files from repo root as they're not interesting
* dropped test-pyflakes.t, test-check-code.t and test-check-py3-compat.t
* renamed remaining tests to all be test-narrow-* when they didn't already
* fixed test-narrow-expanddirstate.t to refer to narrow and not narrowhg
* fixed tests that wanted `update -C .` instead of `merge --abort`
* corrected a two-space indent in narrowspec.py
* added a missing _() in narrowcommands.py
* fixed imports to pass the import checker
* narrow only adds its --include and --exclude to clone if sparse isn't
enabled to avoid breaking test-duplicateoptions.py. This is a kludge,
and we'll need to come up with a better solution in the future.
These were more or less the minimum to import something that would
pass tests and not create a bunch of files we'll never use.
Changes I intend to make as followups:
* rework the test-narrow-*-tree.t tests to use the new testcases
functionality in run-tests.py
* remove lots of monkeypatches of core things
Differential Revision: https://phab.mercurial-scm.org/D1974
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 29 Jan 2018 16:19:33 -0500 |
parents | |
children | f85e32a5e5c8 |
comparison
equal
deleted
inserted
replaced
36078:7f68235f23ff | 36079:a2a6e724d61a |
---|---|
1 # narrowcopies.py - extensions to mercurial copies module to support narrow | |
2 # clones | |
3 # | |
4 # Copyright 2017 Google, Inc. | |
5 # | |
6 # This software may be used and distributed according to the terms of the | |
7 # GNU General Public License version 2 or any later version. | |
8 | |
9 from __future__ import absolute_import | |
10 | |
11 from mercurial import ( | |
12 copies, | |
13 extensions, | |
14 util, | |
15 ) | |
16 | |
17 def setup(repo): | |
18 def _computeforwardmissing(orig, a, b, match=None): | |
19 missing = orig(a, b, match) | |
20 if util.safehasattr(repo, 'narrowmatch'): | |
21 narrowmatch = repo.narrowmatch() | |
22 missing = filter(narrowmatch, missing) | |
23 return missing | |
24 | |
25 def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit, | |
26 data): | |
27 if util.safehasattr(repo, 'narrowmatch'): | |
28 narrowmatch = repo.narrowmatch() | |
29 if not narrowmatch(f): | |
30 return | |
31 orig(srcctx, dstctx, f, base, tca, remotebase, limit, data) | |
32 | |
33 extensions.wrapfunction(copies, '_computeforwardmissing', | |
34 _computeforwardmissing) | |
35 extensions.wrapfunction(copies, '_checkcopies', _checkcopies) |