[PATCH 1 of 2] archive: use a templater to build the metadata file

Matt Harbison mharbison72 at gmail.com
Mon Jul 17 23:08:25 EDT 2017


On Mon, 17 Jul 2017 09:53:12 -0400, Yuya Nishihara <yuya at tcha.org> wrote:

> On Mon, 17 Jul 2017 00:57:38 -0400, Matt Harbison wrote:
>> # HG changeset patch
>> # User Matt Harbison <matt_harbison at yahoo.com>
>> # Date 1500241236 14400
>> #      Sun Jul 16 17:40:36 2017 -0400
>> # Node ID 4d37def90ad5e0196dadb9bc2c9e62effad63691
>> # Parent  d09de637cbc88ed2db989298115d0c0cb6cc6f27
>> archive: use a templater to build the metadata file
>
> Queued, thanks.
>
>> +    default = (
>> +        r'repo: {root}\n'
>> +        r'node: {ifcontains(rev, revset("wdir()"),'
>> +                            r'"{p1node}{dirty}", "{node}")}\n'
>> +        r'branch: {branch|utf8}\n'
>>
>> -    base = 'repo: %s\nnode: %s\nbranch: %s\n' % (
>> -        _rootctx(repo).hex(), hex, encoding.fromlocal(ctx.branch()))
>> +        # {tags} on ctx includes local tags and 'tip', with no current  
>> way to
>> +        # limit that to global tags.  Therefore, use {latesttag} as a  
>> substitute
>> +        # when the distance is 0, since that will be the list of  
>> global tags on
>> +        # ctx.
>> +        r'{ifeq(latesttagdistance, 0, latesttag % "tag: {tag}\n",'
>> +                       r'"{latesttag % "latesttag: {tag}\n"}'
>> +                       r'latesttagdistance: {latesttagdistance}\n'
>> +                       r'changessincelatesttag:  
>> {changessincelatesttag}\n")}'
>
> You could use {separate('', '', ...)} to eliminate these weird indents.

I'm not sure what you mean.  I indented like this to vertically line up  
the true and false args to ifeq() for readability.  (Originally I used  
'tags' as the first arg, and it all lined up until I figured out how to  
hack around local tags in the {tags} keyword.  So that was a failure.)


More information about the Mercurial-devel mailing list