[PATCH STABLE V2] keyword: avoid traceback when kwdemo is run outside a repo
Augie Fackler
raf at durin42.com
Wed Jul 27 17:44:32 EDT 2016
> On Jul 27, 2016, at 5:37 PM, Christian Ebert <blacktrash at gmx.net> wrote:
>
> # HG changeset patch
> # User Christian Ebert <blacktrash at gmx.net>
> # Date 1469624271 -3600
> # Wed Jul 27 13:57:51 2016 +0100
> # Branch stable
> # Node ID 591ba25e00ddcb93e20a7bdb3fc7091183522709
> # Parent 6217180f9ab8c61320ea3826591960415779282e
> keyword: avoid traceback when kwdemo is run outside a repo
Queued for stable, thanks
>
> 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 --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 == 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 <<EOF >> $HGRCPATH
>> [extensions]
>> keyword =
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160727/e8cd4d03/attachment.sig>
More information about the Mercurial-devel
mailing list