# HG changeset patch # User Christian Ebert # Date 1469624271 -3600 # Node ID 8421cbebc783e7f3cb17cfb62b4095113f8d666b # Parent bc5148d0a446aa695eb0fe45e9e3345fbe21392e keyword: avoid traceback when kwdemo is run outside a repo f0564402d059 causes a fatal AttributeError if kwdemo is run outside a repo because in the temporary repo creation repo is None and therefore cannot have a baseui attribute. In this case fall back to using ui. Add test case. diff -r bc5148d0a446 -r 8421cbebc783 hgext/keyword.py --- a/hgext/keyword.py Wed Jul 27 08:38:54 2016 +0000 +++ b/hgext/keyword.py Wed Jul 27 13:57:51 2016 +0100 @@ -412,7 +412,11 @@ 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 -r bc5148d0a446 -r 8421cbebc783 tests/test-keyword.t --- a/tests/test-keyword.t Wed Jul 27 08:38:54 2016 +0000 +++ b/tests/test-keyword.t Wed Jul 27 13:57:51 2016 +0100 @@ -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 =