Mercurial > hg
view tests/test-extension @ 11715:4f9dfb54c8b5 stable
qpush --move: move the right patch even with comment lines
88fc876a4833 caused that we find the index of the moving patch in self.series
but look it up in self.full_series. The difference between these is that
full_series also contains comment lines, and we thus moved the wrong patch.
Use back self.full_series to find the moving patch, but take care of striping
the patch guard markers before comparing the patch name. Test cases have been
added for comments and empty lines in self.full_series, and for the case of
guarded patches.
Original patch contributed by Mads Kiilerich <mads@kiilerich.com>
author | Gilles Moris <gilles.moris@free.fr> |
---|---|
date | Sat, 10 Jul 2010 21:23:00 +0200 |
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