tests/test-extension
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Thu, 08 Feb 2007 16:31:21 -0200
changeset 4074 0f9381cf9723
parent 4064 5d9ede002453
child 4569 622d8ed78b47
permissions -rwxr-xr-x
Try to pass repo.ui to reposetup hooks The ui object we received in this function may belong to another repo, which could be confusing from the hook point of view. Trying to use the ui object from the newly created repo should avoid this confusion.

#!/bin/sh
# Test basic extension support

cat > foobar.py <<EOF
import os
from mercurial import commands

def uisetup(ui):
    ui.write("uisetup called\\n")
    ui.write("ui.parentui is%s None\\n" % (ui.parentui is not None
                                           and "not" or ""))

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

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