diff --git a/hgext/keyword.py b/hgext/keyword.py --- a/hgext/keyword.py +++ b/hgext/keyword.py @@ -412,7 +412,11 @@ def demo(ui, repo, *args, **opts): fn = 'demo.txt' tmpdir = tempfile.mkdtemp('', 'kwdemo.') ui.note(_('creating temporary repository at %s\n') % tmpdir) - repo = localrepo.localrepository(repo.baseui, tmpdir, True) + if repo is None: + baseui = ui + else: + baseui = repo.baseui + repo = localrepo.localrepository(baseui, tmpdir, True) ui.setconfig('keyword', fn, '', 'keyword') svn = ui.configbool('keywordset', 'svn') # explicitly set keywordset for demo output diff --git a/tests/test-keyword.t b/tests/test-keyword.t --- a/tests/test-keyword.t +++ b/tests/test-keyword.t @@ -1,3 +1,15 @@ +Run kwdemo outside a repo + $ hg -q --config extensions.keyword= --config keywordmaps.Foo="{author|user}" kwdemo + [extensions] + keyword = + [keyword] + demo.txt = + [keywordset] + svn = False + [keywordmaps] + Foo = {author|user} + $Foo: test $ + $ cat <> $HGRCPATH > [extensions] > keyword =