Mercurial > hg
view tests/pullext.py @ 47890:3853e6ee160d
dirstatemap: replace `removefile` by an explicit `entry.set_untracked()`
All the other caller goes through `reset_state`, so we can safely have an
explicit method on `DirstateItem` object.
This means that all the logic to preserve the previous state (from p2, merged,
etc) is now properly encapsulated within the DirstateItem. This pave the way to
using different storage for these information.
Differential Revision: https://phab.mercurial-scm.org/D11315
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 20 Aug 2021 11:27:01 +0200 |
parents | 77b8588dd84e |
children | 6000f5b25c9b |
line wrap: on
line source
# 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, error, extensions, localrepo, requirements, ) def clonecommand(orig, ui, repo, *args, **kwargs): if kwargs.get('include') or kwargs.get('exclude'): kwargs['narrow'] = True if kwargs.get('depth'): try: kwargs['depth'] = int(kwargs['depth']) except ValueError: raise error.Abort(_('--depth must be an integer')) return orig(ui, repo, *args, **kwargs) def featuresetup(ui, features): features.add(requirements.NARROW_REQUIREMENT) def extsetup(ui): entry = extensions.wrapcommand(commands.table, b'clone', clonecommand) hasinclude = any(x[1] == b'include' for x in entry[1]) hasdepth = any(x[1] == b'depth' for x in entry[1]) if not hasinclude: 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')) ) if not hasdepth: entry[1].append( (b'', b'depth', b'', _(b'ancestry depth of changesets to fetch')) ) localrepo.featuresetupfuncs.add(featuresetup)