pullext.py
52 lines
| 1.5 KiB
| text/x-python
|
PythonLexer
/ tests / pullext.py
Gregory Szorc
|
r40363 | # pullext.py - Simple extension to test pulling | ||
# | ||||
# Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> | ||||
# | ||||
# 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.i18n import _ | ||||
from mercurial import ( | ||||
commands, | ||||
Gregory Szorc
|
r40429 | error, | ||
Gregory Szorc
|
r40363 | extensions, | ||
localrepo, | ||||
Pulkit Goyal
|
r43078 | ) | ||
from mercurial.interfaces import ( | ||||
Gregory Szorc
|
r40363 | repository, | ||
) | ||||
def clonecommand(orig, ui, repo, *args, **kwargs): | ||||
if kwargs.get(r'include') or kwargs.get(r'exclude'): | ||||
kwargs[r'narrow'] = True | ||||
Gregory Szorc
|
r40429 | if kwargs.get(r'depth'): | ||
try: | ||||
kwargs[r'depth'] = int(kwargs[r'depth']) | ||||
except ValueError: | ||||
raise error.Abort(_('--depth must be an integer')) | ||||
Gregory Szorc
|
r40363 | return orig(ui, repo, *args, **kwargs) | ||
def featuresetup(ui, features): | ||||
features.add(repository.NARROW_REQUIREMENT) | ||||
def extsetup(ui): | ||||
Matt Harbison
|
r41019 | entry = extensions.wrapcommand(commands.table, b'clone', clonecommand) | ||
Gregory Szorc
|
r40363 | |||
Matt Harbison
|
r41019 | hasinclude = any(x[1] == b'include' for x in entry[1]) | ||
hasdepth = any(x[1] == b'depth' for x in entry[1]) | ||||
Gregory Szorc
|
r40363 | |||
if not hasinclude: | ||||
Matt Harbison
|
r41019 | entry[1].append((b'', b'include', [], | ||
_(b'pattern of file/directory to clone'))) | ||||
entry[1].append((b'', b'exclude', [], | ||||
_(b'pattern of file/directory to not clone'))) | ||||
Gregory Szorc
|
r40363 | |||
Gregory Szorc
|
r40429 | if not hasdepth: | ||
Matt Harbison
|
r41019 | entry[1].append((b'', b'depth', b'', | ||
_(b'ancestry depth of changesets to fetch'))) | ||||
Gregory Szorc
|
r40429 | |||
Gregory Szorc
|
r40363 | localrepo.featuresetupfuncs.add(featuresetup) | ||