Mercurial > hg
view tests/test-extension @ 11541:ab9fa7a85dd9 stable
filelog: cmp: don't read data if hashes are identical (issue2273)
filelog.renamed() is an expensive call as it reads the filelog if p1 == nullid.
It's more efficient to first compute the hash, and to bail early if
the computed hash is the same as the stored nodeid.
'samehashes' variable is not strictly necessary, but helps for comprehension.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 05 Jul 2010 19:49:54 +0900 |
parents | ba1ff2063edd |
children |
line wrap: on
line source
#!/bin/sh # Test basic extension support "$TESTDIR/hghave" no-outer-repo || exit 80 cat > foobar.py <<EOF import os from mercurial import commands def uisetup(ui): ui.write("uisetup called\\n") def reposetup(ui, repo): ui.write("reposetup called for %s\\n" % os.path.basename(repo.root)) ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!")) def foo(ui, *args, **kwargs): ui.write("Foo\\n") def bar(ui, *args, **kwargs): ui.write("Bar\\n") cmdtable = { "foo": (foo, [], "hg foo"), "bar": (bar, [], "hg bar"), } commands.norepo += ' bar' EOF abspath=`pwd`/foobar.py mkdir barfoo cp foobar.py barfoo/__init__.py barfoopath=`pwd`/barfoo hg init a cd a echo foo > file hg add file hg commit -m 'add file' echo '[extensions]' >> $HGRCPATH echo "foobar = $abspath" >> $HGRCPATH hg foo cd .. hg clone a b hg bar echo 'foobar = !' >> $HGRCPATH echo '% module/__init__.py-style' echo "barfoo = $barfoopath" >> $HGRCPATH cd a hg foo echo 'barfoo = !' >> $HGRCPATH # check that extensions are loaded in phases cat > foo.py <<EOF import os name = os.path.basename(__file__).rsplit('.', 1)[0] print "1) %s imported" % name def uisetup(ui): print "2) %s uisetup" % name def extsetup(): print "3) %s extsetup" % name def reposetup(ui, repo): print "4) %s reposetup" % name EOF cp foo.py bar.py echo 'foo = foo.py' >> $HGRCPATH echo 'bar = bar.py' >> $HGRCPATH # command with no output, we just want to see the extensions loaded hg paths # check hgweb's load order echo '% hgweb.cgi' cat > hgweb.cgi <<EOF #!/usr/bin/env python from mercurial import demandimport; demandimport.enable() from mercurial.hgweb import hgweb from mercurial.hgweb import wsgicgi application = hgweb('.', 'test repo') wsgicgi.launch(application) EOF SCRIPT_NAME='/' SERVER_PORT='80' SERVER_NAME='localhost' python hgweb.cgi \ | grep '^[0-9]) ' # ignores HTML output echo 'foo = !' >> $HGRCPATH echo 'bar = !' >> $HGRCPATH cd .. cat > empty.py <<EOF '''empty cmdtable ''' cmdtable = {} EOF emptypath=`pwd`/empty.py echo "empty = $emptypath" >> $HGRCPATH hg help empty echo 'empty = !' >> $HGRCPATH cat > debugextension.py <<EOF '''only debugcommands ''' def debugfoobar(ui, repo, *args, **opts): "yet another debug command" pass def foo(ui, repo, *args, **opts): """yet another foo command This command has been DEPRECATED since forever. """ pass cmdtable = { "debugfoobar": (debugfoobar, (), "hg debugfoobar"), "foo": (foo, (), "hg foo") } EOF debugpath=`pwd`/debugextension.py echo "debugextension = $debugpath" >> $HGRCPATH echo "% hg help" hg help debugextension echo "% hg help --verbose" hg --verbose help debugextension echo "% hg help --debug" hg --debug help debugextension echo 'debugextension = !' >> $HGRCPATH echo % issue811 debugpath=`pwd`/debugissue811.py cat > debugissue811.py <<EOF '''show all loaded extensions ''' from mercurial import extensions, commands def debugextensions(ui): "yet another debug command" ui.write("%s\n" % '\n'.join([x for x, y in extensions.extensions()])) cmdtable = {"debugextensions": (debugextensions, (), "hg debugextensions")} commands.norepo += " debugextensions" EOF echo "debugissue811 = $debugpath" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "hgext.mq=" >> $HGRCPATH echo "hgext/mq=" >> $HGRCPATH echo % show extensions hg debugextensions echo '% disabled extension commands' HGRCPATH= export HGRCPATH hg help email hg qdel hg churn echo '% disabled extensions' hg help churn hg help patchbomb echo '% broken disabled extension and command' mkdir hgext echo > hgext/__init__.py cat > hgext/broken.py <<EOF "broken extension' EOF cat > path.py <<EOF import os, sys sys.path.insert(0, os.environ['HGEXTPATH']) EOF HGEXTPATH=`pwd` export HGEXTPATH hg --config extensions.path=./path.py help broken hg --config extensions.path=./path.py help foo > /dev/null exit 0