mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
98d9269874
Summary: Create a fork of the Mercurial code that we can use to build server rpms. The hg servers will continue to exist for a few more months while we move the darkstorm and ediscovery use cases off them. In the mean time, we want to start making breaking changes to the client, so let's create a stable copy of the hg code to produce rpms for the hg servers. The fork is based off c7770c78d, the latest hg release. This copies the files as is, then adds some minor tweaks to get it to build: - Disables some lint checks that appear to be bypassed by path - sed replace eden/scm with eden/hg-server - Removed a dependency on scm/telemetry from the edenfs-client tests since scm/telemetry pulls in the original eden/scm/lib/configparser which conflicts with the hg-server conflict parser. allow-large-files Reviewed By: quark-zju Differential Revision: D27632557 fbshipit-source-id: b2f442f4ec000ea08e4d62de068750832198e1f4
96 lines
3.3 KiB
Perl
96 lines
3.3 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
ensure that failing ui.atexit handlers report sensibly
|
|
|
|
$ cat > $TESTTMP/bailatexit.py <<EOF
|
|
> from edenscm.mercurial import util
|
|
> def bail():
|
|
> raise RuntimeError('ui.atexit handler exception')
|
|
>
|
|
> def extsetup(ui):
|
|
> ui.atexit(bail)
|
|
> EOF
|
|
$ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \
|
|
> help help
|
|
hg help [-ecks] [TOPIC]
|
|
|
|
show help for a given topic or a help overview
|
|
error in exit handlers:
|
|
Traceback (most recent call last):
|
|
File "$TESTTMP/bailatexit.py", line *, in bail (glob)
|
|
raise RuntimeError('ui.atexit handler exception')
|
|
RuntimeError: ui.atexit handler exception
|
|
[255]
|
|
|
|
$ rm $TESTTMP/bailatexit.py
|
|
|
|
another bad extension
|
|
|
|
$ echo 'raise Exception("bit bucket overflow")' > badext.py
|
|
$ abspathexc=`pwd`/badext.py
|
|
|
|
$ cat >baddocext.py <<EOF
|
|
> """
|
|
> baddocext is bad
|
|
> """
|
|
> EOF
|
|
$ abspathdoc=`pwd`/baddocext.py
|
|
|
|
$ cat <<EOF >> $HGRCPATH
|
|
> [extensions]
|
|
> gpg =
|
|
> badext = $abspathexc
|
|
> baddocext = $abspathdoc
|
|
> badext2 =
|
|
> EOF
|
|
|
|
$ hg -q help help 2>&1 |grep extension
|
|
warning: extension badext is disabled because it cannot be imported from $TESTTMP/badext.py: bit bucket overflow
|
|
warning: extension badext2 is disabled because it cannot be imported: No module named badext2
|
|
|
|
show traceback
|
|
|
|
$ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError'
|
|
warning: extension badext is disabled because it cannot be imported from $TESTTMP/badext.py: bit bucket overflow
|
|
Traceback (most recent call last):
|
|
Exception: bit bucket overflow
|
|
warning: extension badext2 is disabled because it cannot be imported: No module named badext2
|
|
Traceback (most recent call last):
|
|
ImportError: No module named badext2
|
|
|
|
names of extensions failed to load can be accessed via extensions.notloaded()
|
|
|
|
$ cat <<EOF > showbadexts.py
|
|
> from edenscm.mercurial import commands, extensions, registrar
|
|
> cmdtable = {}
|
|
> command = registrar.command(cmdtable)
|
|
> @command('showbadexts', norepo=True)
|
|
> def showbadexts(ui, *pats, **opts):
|
|
> ui.write('BADEXTS: %s\n' % ' '.join(sorted(extensions.notloaded())))
|
|
> EOF
|
|
$ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
|
|
BADEXTS: badext badext2
|
|
|
|
show traceback for ImportError of hgext.name if debug is set
|
|
(note that --debug option isn't applied yet when loading extensions)
|
|
|
|
$ (hg -q help help --traceback --config ui.debug=True 2>&1) \
|
|
> | grep -v '^ ' \
|
|
> | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import'
|
|
warning: extension badext is disabled because it cannot be imported from $TESTTMP/badext.py: bit bucket overflow
|
|
Traceback (most recent call last):
|
|
Exception: bit bucket overflow
|
|
warning: extension badext2 is disabled because it cannot be imported: No module named badext2
|
|
Traceback (most recent call last):
|
|
ImportError: No module named *badext2 (glob)
|
|
|
|
confirm that there's no crash when an extension's documentation is bad
|
|
|
|
$ hg help --keyword baddocext
|
|
warning: extension badext is disabled because it cannot be imported from $TESTTMP/badext.py: bit bucket overflow
|
|
warning: extension badext2 is disabled because it cannot be imported: No module named badext2
|
|
Topics:
|
|
|
|
extensions Using Additional Features
|