##// END OF EJS Templates
localrepo: handle ValueError during repository opening...
localrepo: handle ValueError during repository opening Python 3.8 can raise ValueError on attempt of an I/O operation against an illegal path. This was causing test-remotefilelog-gc.t to fail on Python 3.8. This commit teaches repository opening to handle ValueError and re-raise an Abort on failure. An arguably better solution would be to implement this logic in the vfs layer. But that seems like a bag of worms and I don't want to go down that rabbit hole. Until users report uncaught ValueError exceptions in the wild, I think it is fine to patch this at the only occurrence our test harness is finding it. Differential Revision: https://phab.mercurial-scm.org/D7944

File last commit:

r43812:2fe6121c default
r45469:9e5b4dbe default
Show More
pullext.py
56 lines | 1.5 KiB | text/x-python | PythonLexer
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
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
exchangev2: support fetching shallow files history...
r40429 error,
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363 extensions,
localrepo,
Pulkit Goyal
interfaces: create a new folder for interfaces and move repository.py in it...
r43078 )
Augie Fackler
formatting: blacken the codebase...
r43346 from mercurial.interfaces import repository
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363
def clonecommand(orig, ui, repo, *args, **kwargs):
Augie Fackler
cleanup: remove pointless r-prefixes on single-quoted strings...
r43906 if kwargs.get('include') or kwargs.get('exclude'):
kwargs['narrow'] = True
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363
Augie Fackler
cleanup: remove pointless r-prefixes on single-quoted strings...
r43906 if kwargs.get('depth'):
Gregory Szorc
exchangev2: support fetching shallow files history...
r40429 try:
Augie Fackler
cleanup: remove pointless r-prefixes on single-quoted strings...
r43906 kwargs['depth'] = int(kwargs['depth'])
Gregory Szorc
exchangev2: support fetching shallow files history...
r40429 except ValueError:
raise error.Abort(_('--depth must be an integer'))
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363 return orig(ui, repo, *args, **kwargs)
Augie Fackler
formatting: blacken the codebase...
r43346
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363 def featuresetup(ui, features):
features.add(repository.NARROW_REQUIREMENT)
Augie Fackler
formatting: blacken the codebase...
r43346
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363 def extsetup(ui):
Matt Harbison
py3: byteify tests/pullext.py...
r41019 entry = extensions.wrapcommand(commands.table, b'clone', clonecommand)
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363
Matt Harbison
py3: byteify tests/pullext.py...
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
exchangev2: recognize narrow patterns when pulling...
r40363
if not hasinclude:
Augie Fackler
formatting: blacken the codebase...
r43346 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
exchangev2: recognize narrow patterns when pulling...
r40363
Gregory Szorc
exchangev2: support fetching shallow files history...
r40429 if not hasdepth:
Augie Fackler
formatting: blacken the codebase...
r43346 entry[1].append(
(b'', b'depth', b'', _(b'ancestry depth of changesets to fetch'))
)
Gregory Szorc
exchangev2: support fetching shallow files history...
r40429
Gregory Szorc
exchangev2: recognize narrow patterns when pulling...
r40363 localrepo.featuresetupfuncs.add(featuresetup)