tests/test-template-functions.t
author Yuya Nishihara <yuya@tcha.org>
Fri, 17 Aug 2018 10:24:29 +0900
changeset 39136 b892df0766e1
parent 38856 a01200b25da6
child 39367 83f8f7b9fa60
permissions -rw-r--r--
branchmap: strip '\n' read from cache file as before Follows up 2a4bfbb52111.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38434
70f551a3f52e tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 38433
diff changeset
     1
Test template filters and functions
70f551a3f52e tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 38433
diff changeset
     2
===================================
70f551a3f52e tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 38433
diff changeset
     3
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     4
  $ hg init a
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     5
  $ cd a
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     6
  $ echo a > a
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     7
  $ hg add a
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     8
  $ echo line 1 > b
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
     9
  $ echo line 2 >> b
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    10
  $ hg commit -l b -d '1000000 0' -u 'User Name <user@hostname>'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    11
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    12
  $ hg add b
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    13
  $ echo other 1 > c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    14
  $ echo other 2 >> c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    15
  $ echo >> c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    16
  $ echo other 3 >> c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    17
  $ hg commit -l c -d '1100000 0' -u 'A. N. Other <other@place>'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    18
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    19
  $ hg add c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    20
  $ hg commit -m 'no person' -d '1200000 0' -u 'other@place'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    21
  $ echo c >> c
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    22
  $ hg commit -m 'no user, no domain' -d '1300000 0' -u 'person'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    23
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    24
  $ echo foo > .hg/branch
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    25
  $ hg commit -m 'new branch' -d '1400000 0' -u 'person'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    26
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    27
  $ hg co -q 3
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    28
  $ echo other 4 >> d
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    29
  $ hg add d
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    30
  $ hg commit -m 'new head' -d '1500000 0' -u 'person'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    31
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    32
  $ hg merge -q foo
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    33
  $ hg commit -m 'merge' -d '1500001 0' -u 'person'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    34
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    35
Second branch starting at nullrev:
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    36
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    37
  $ hg update null
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    38
  0 files updated, 0 files merged, 4 files removed, 0 files unresolved
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    39
  $ echo second > second
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    40
  $ hg add second
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    41
  $ hg commit -m second -d '1000000 0' -u 'User Name <user@hostname>'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    42
  created new head
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    43
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    44
  $ echo third > third
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    45
  $ hg add third
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    46
  $ hg mv second fourth
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    47
  $ hg commit -m third -d "2020-01-01 10:01"
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    48
22764
1e2f54a149e8 templater: set the correct phase for parents
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22668
diff changeset
    49
  $ hg phase -r 5 --public
1e2f54a149e8 templater: set the correct phase for parents
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22668
diff changeset
    50
  $ hg phase -r 7 --secret --force
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    51
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    52
Filters work:
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    53
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    54
  $ hg log --template '{author|domain}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    55
  
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    56
  hostname
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    57
  
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    58
  
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    59
  
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    60
  
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    61
  place
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    62
  place
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    63
  hostname
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    64
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    65
  $ hg log --template '{author|person}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    66
  test
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    67
  User Name
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    68
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    69
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    70
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    71
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    72
  other
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    73
  A. N. Other
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    74
  User Name
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
    75
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    76
  $ hg log --template '{author|user}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    77
  test
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    78
  user
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    79
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    80
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    81
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    82
  person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    83
  other
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    84
  other
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    85
  user
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    86
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    87
  $ hg log --template '{date|date}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    88
  Wed Jan 01 10:01:00 2020 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    89
  Mon Jan 12 13:46:40 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    90
  Sun Jan 18 08:40:01 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    91
  Sun Jan 18 08:40:00 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    92
  Sat Jan 17 04:53:20 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    93
  Fri Jan 16 01:06:40 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    94
  Wed Jan 14 21:20:00 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    95
  Tue Jan 13 17:33:20 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    96
  Mon Jan 12 13:46:40 1970 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    97
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    98
  $ hg log --template '{date|isodate}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
    99
  2020-01-01 10:01 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   100
  1970-01-12 13:46 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   101
  1970-01-18 08:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   102
  1970-01-18 08:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   103
  1970-01-17 04:53 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   104
  1970-01-16 01:06 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   105
  1970-01-14 21:20 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   106
  1970-01-13 17:33 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   107
  1970-01-12 13:46 +0000
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
   108
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   109
  $ hg log --template '{date|isodatesec}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   110
  2020-01-01 10:01:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   111
  1970-01-12 13:46:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   112
  1970-01-18 08:40:01 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   113
  1970-01-18 08:40:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   114
  1970-01-17 04:53:20 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   115
  1970-01-16 01:06:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   116
  1970-01-14 21:20:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   117
  1970-01-13 17:33:20 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   118
  1970-01-12 13:46:40 +0000
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
   119
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   120
  $ hg log --template '{date|rfc822date}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   121
  Wed, 01 Jan 2020 10:01:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   122
  Mon, 12 Jan 1970 13:46:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   123
  Sun, 18 Jan 1970 08:40:01 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   124
  Sun, 18 Jan 1970 08:40:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   125
  Sat, 17 Jan 1970 04:53:20 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   126
  Fri, 16 Jan 1970 01:06:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   127
  Wed, 14 Jan 1970 21:20:00 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   128
  Tue, 13 Jan 1970 17:33:20 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   129
  Mon, 12 Jan 1970 13:46:40 +0000
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   130
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   131
  $ hg log --template '{desc|firstline}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   132
  third
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   133
  second
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   134
  merge
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   135
  new head
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   136
  new branch
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   137
  no user, no domain
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   138
  no person
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   139
  other 1
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   140
  line 1
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
   141
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   142
  $ hg log --template '{node|short}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   143
  95c24699272e
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   144
  29114dbae42b
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13666
diff changeset
   145
  d41e714fe50d
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   146
  13207e5a10d9
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13666
diff changeset
   147
  bbe44766e73d
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   148
  10e46f2dcbf4
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   149
  97054abb4ab8
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   150
  b608e9d1a3f0
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   151
  1e4e1b8f71e0
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   152
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   153
  $ hg log --template '<changeset author="{author|xmlescape}"/>\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   154
  <changeset author="test"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   155
  <changeset author="User Name &lt;user@hostname&gt;"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   156
  <changeset author="person"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   157
  <changeset author="person"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   158
  <changeset author="person"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   159
  <changeset author="person"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   160
  <changeset author="other@place"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   161
  <changeset author="A. N. Other &lt;other@place&gt;"/>
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   162
  <changeset author="User Name &lt;user@hostname&gt;"/>
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
   163
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   164
  $ hg log --template '{rev}: {children}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   165
  8: 
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   166
  7: 8:95c24699272e
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   167
  6: 
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13666
diff changeset
   168
  5: 6:d41e714fe50d
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13666
diff changeset
   169
  4: 6:d41e714fe50d
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13666
diff changeset
   170
  3: 4:bbe44766e73d 5:13207e5a10d9
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   171
  2: 3:10e46f2dcbf4
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   172
  1: 2:97054abb4ab8
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   173
  0: 1:b608e9d1a3f0
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   174
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   175
Formatnode filter works:
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   176
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   177
  $ hg -q log -r 0 --template '{node|formatnode}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   178
  1e4e1b8f71e0
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   179
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   180
  $ hg log -r 0 --template '{node|formatnode}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   181
  1e4e1b8f71e0
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   182
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   183
  $ hg -v log -r 0 --template '{node|formatnode}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   184
  1e4e1b8f71e0
9536
f04d17912441 cmdutil: templating keywords latesttag and latesttagdistance
Mads Kiilerich <mads@kiilerich.com>
parents: 9382
diff changeset
   185
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   186
  $ hg --debug log -r 0 --template '{node|formatnode}\n'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   187
  1e4e1b8f71e05681d422154f5421e385fec3454f
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   188
15839
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   189
Age filter:
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   190
25005
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   191
  $ hg init unstable-hash
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   192
  $ cd unstable-hash
15839
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   193
  $ hg log --template '{date|age}\n' > /dev/null || exit 1
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   194
33950
42361715dd11 tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33865
diff changeset
   195
  >>> from __future__ import absolute_import
42361715dd11 tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33865
diff changeset
   196
  >>> import datetime
36504
b075f45456a5 py3: fix test-command-template.t to write files in binary mode
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
   197
  >>> fp = open('a', 'wb')
33950
42361715dd11 tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33865
diff changeset
   198
  >>> n = datetime.datetime.now() + datetime.timedelta(366 * 7)
36542
106e93d16435 py3: silence return value of file.write() in test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 36504
diff changeset
   199
  >>> fp.write(b'%d-%d-%d 00:00' % (n.year, n.month, n.day)) and None
15839
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   200
  >>> fp.close()
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   201
  $ hg add a
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   202
  $ hg commit -m future -d "`cat a`"
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   203
17345
4f8054d3171b check-code: fix check for trailing whitespace on sh command lines
Mads Kiilerich <mads@kiilerich.com>
parents: 17334
diff changeset
   204
  $ hg log -l1 --template '{date|age}\n'
15839
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   205
  7 years from now
43317af36d28 tests: make {date|age} template output independent of the current date
Steven Brown <StevenGBrown@gmail.com>
parents: 15773
diff changeset
   206
25005
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   207
  $ cd ..
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   208
  $ rm -rf unstable-hash
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   209
35539
d1aae6d4efc5 templatefilters: fix doc of basename()
Yuya Nishihara <yuya@tcha.org>
parents: 34866
diff changeset
   210
Filename filters:
d1aae6d4efc5 templatefilters: fix doc of basename()
Yuya Nishihara <yuya@tcha.org>
parents: 34866
diff changeset
   211
d1aae6d4efc5 templatefilters: fix doc of basename()
Yuya Nishihara <yuya@tcha.org>
parents: 34866
diff changeset
   212
  $ hg debugtemplate '{"foo/bar"|basename}|{"foo/"|basename}|{"foo"|basename}|\n'
d1aae6d4efc5 templatefilters: fix doc of basename()
Yuya Nishihara <yuya@tcha.org>
parents: 34866
diff changeset
   213
  bar||foo|
36246
9ee10b3284da templatefilters: add dirname() filter
Yuya Nishihara <yuya@tcha.org>
parents: 35751
diff changeset
   214
  $ hg debugtemplate '{"foo/bar"|dirname}|{"foo/"|dirname}|{"foo"|dirname}|\n'
9ee10b3284da templatefilters: add dirname() filter
Yuya Nishihara <yuya@tcha.org>
parents: 35751
diff changeset
   215
  foo|foo||
9ee10b3284da templatefilters: add dirname() filter
Yuya Nishihara <yuya@tcha.org>
parents: 35751
diff changeset
   216
  $ hg debugtemplate '{"foo/bar"|stripdir}|{"foo/"|stripdir}|{"foo"|stripdir}|\n'
9ee10b3284da templatefilters: add dirname() filter
Yuya Nishihara <yuya@tcha.org>
parents: 35751
diff changeset
   217
  foo|foo|foo|
35539
d1aae6d4efc5 templatefilters: fix doc of basename()
Yuya Nishihara <yuya@tcha.org>
parents: 34866
diff changeset
   218
38435
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   219
commondir() filter:
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   220
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   221
  $ hg debugtemplate '{""|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   222
  
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   223
  $ hg debugtemplate '{"foo/bar\nfoo/baz\nfoo/foobar\n"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   224
  foo
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   225
  $ hg debugtemplate '{"foo/bar\nfoo/bar\n"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   226
  foo
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   227
  $ hg debugtemplate '{"/foo/bar\n/foo/bar\n"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   228
  foo
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   229
  $ hg debugtemplate '{"/foo\n/foo\n"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   230
  
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   231
  $ hg debugtemplate '{"foo/bar\nbar/baz"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   232
  
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   233
  $ hg debugtemplate '{"foo/bar\nbar/baz\nbar/foo\n"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   234
  
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   235
  $ hg debugtemplate '{"foo/../bar\nfoo/bar"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   236
  foo
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   237
  $ hg debugtemplate '{"foo\n/foo"|splitlines|commondir}\n'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   238
  
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   239
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   240
  $ hg log -r null -T '{rev|commondir}'
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   241
  hg: parse error: argument is not a list of text
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   242
  (template filter 'commondir' is not compatible with keyword 'rev')
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   243
  [255]
6a8ed5c7e112 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org>
parents: 38434
diff changeset
   244
25005
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   245
Add a dummy commit to make up for the instability of the above:
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   246
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   247
  $ echo a > a
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   248
  $ hg add a
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   249
  $ hg ci -m future
5ddbb024c2e9 tests: fix hidden repeatability problem with age filter test
Matt Mackall <mpm@selenic.com>
parents: 25003
diff changeset
   250
22668
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   251
Count filter:
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   252
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   253
  $ hg log -l1 --template '{node|count} {node|short|count}\n'
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   254
  40 12
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   255
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   256
  $ hg log -l1 --template '{revset("null^")|count} {revset(".")|count} {revset("0::3")|count}\n'
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   257
  0 1 4
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   258
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   259
  $ hg log -G --template '{rev}: children: {children|count}, \
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   260
  > tags: {tags|count}, file_adds: {file_adds|count}, \
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   261
  > ancestors: {revset("ancestors(%s)", rev)|count}'
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   262
  @  9: children: 0, tags: 1, file_adds: 1, ancestors: 3
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   263
  |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   264
  o  8: children: 1, tags: 0, file_adds: 2, ancestors: 2
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   265
  |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   266
  o  7: children: 1, tags: 0, file_adds: 1, ancestors: 1
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   267
  
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   268
  o    6: children: 0, tags: 0, file_adds: 0, ancestors: 7
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   269
  |\
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   270
  | o  5: children: 1, tags: 0, file_adds: 1, ancestors: 5
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   271
  | |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   272
  o |  4: children: 1, tags: 0, file_adds: 0, ancestors: 5
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   273
  |/
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   274
  o  3: children: 2, tags: 0, file_adds: 0, ancestors: 4
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   275
  |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   276
  o  2: children: 1, tags: 0, file_adds: 1, ancestors: 3
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   277
  |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   278
  o  1: children: 1, tags: 0, file_adds: 1, ancestors: 2
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   279
  |
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   280
  o  0: children: 1, tags: 0, file_adds: 1, ancestors: 1
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   281
  
13e3f07d74a3 templater: add count template filter, plus tests
Anton Shestakov <engored@ya.ru>
parents: 22588
diff changeset
   282
37229
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   283
  $ hg log -l1 -T '{termwidth|count}\n'
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   284
  hg: parse error: not countable
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   285
  (template filter 'count' is not compatible with keyword 'termwidth')
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   286
  [255]
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   287
24566
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   288
Upper/lower filters:
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   289
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   290
  $ hg log -r0 --template '{branch|upper}\n'
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   291
  DEFAULT
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   292
  $ hg log -r0 --template '{author|lower}\n'
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   293
  user name <user@hostname>
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   294
  $ hg log -r0 --template '{date|upper}\n'
38299
88e7105b5cd9 templater: restore the original string format of {date}
Yuya Nishihara <yuya@tcha.org>
parents: 38289
diff changeset
   295
  1000000.00
24566
6abce80e6cbf templatefilters: add "upper" and "lower" for case conversion
Yuya Nishihara <yuya@tcha.org>
parents: 24319
diff changeset
   296
24985
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   297
Add a commit that does all possible modifications at once
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   298
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   299
  $ echo modify >> third
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   300
  $ touch b
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   301
  $ hg add b
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   302
  $ hg mv fourth fifth
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   303
  $ hg rm a
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   304
  $ hg ci -m "Modify, add, remove, rename"
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
   305
24280
6c55e37ba5f2 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org>
parents: 24241
diff changeset
   306
Pass generator object created by template function to filter
6c55e37ba5f2 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org>
parents: 24241
diff changeset
   307
6c55e37ba5f2 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org>
parents: 24241
diff changeset
   308
  $ hg log -l 1 --template '{if(author, author)|user}\n'
6c55e37ba5f2 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org>
parents: 24241
diff changeset
   309
  test
6c55e37ba5f2 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org>
parents: 24241
diff changeset
   310
22434
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   311
Test diff function:
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   312
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   313
  $ hg diff -c 8
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   314
  diff -r 29114dbae42b -r 95c24699272e fourth
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   315
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   316
  +++ b/fourth	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   317
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   318
  +second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   319
  diff -r 29114dbae42b -r 95c24699272e second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   320
  --- a/second	Mon Jan 12 13:46:40 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   321
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   322
  @@ -1,1 +0,0 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   323
  -second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   324
  diff -r 29114dbae42b -r 95c24699272e third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   325
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   326
  +++ b/third	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   327
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   328
  +third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   329
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   330
  $ hg log -r 8 -T "{diff()}"
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   331
  diff -r 29114dbae42b -r 95c24699272e fourth
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   332
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   333
  +++ b/fourth	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   334
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   335
  +second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   336
  diff -r 29114dbae42b -r 95c24699272e second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   337
  --- a/second	Mon Jan 12 13:46:40 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   338
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   339
  @@ -1,1 +0,0 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   340
  -second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   341
  diff -r 29114dbae42b -r 95c24699272e third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   342
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   343
  +++ b/third	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   344
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   345
  +third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   346
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   347
  $ hg log -r 8 -T "{diff('glob:f*')}"
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   348
  diff -r 29114dbae42b -r 95c24699272e fourth
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   349
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   350
  +++ b/fourth	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   351
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   352
  +second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   353
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   354
  $ hg log -r 8 -T "{diff('', 'glob:f*')}"
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   355
  diff -r 29114dbae42b -r 95c24699272e second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   356
  --- a/second	Mon Jan 12 13:46:40 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   357
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   358
  @@ -1,1 +0,0 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   359
  -second
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   360
  diff -r 29114dbae42b -r 95c24699272e third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   361
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   362
  +++ b/third	Wed Jan 01 10:01:00 2020 +0000
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   363
  @@ -0,0 +1,1 @@
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   364
  +third
40ce05b50148 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 22427
diff changeset
   365
25562
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   366
  $ hg log -r 8 -T "{diff('FOURTH'|lower)}"
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   367
  diff -r 29114dbae42b -r 95c24699272e fourth
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   368
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   369
  +++ b/fourth	Wed Jan 01 10:01:00 2020 +0000
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   370
  @@ -0,0 +1,1 @@
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   371
  +second
9452112c8eb0 templater: evaluate arguments passed to diff() appropriately
Yuya Nishihara <yuya@tcha.org>
parents: 25471
diff changeset
   372
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   373
  $ cd ..
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   374
38434
70f551a3f52e tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 38433
diff changeset
   375
latesttag() function:
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   376
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   377
  $ hg init latesttag
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   378
  $ cd latesttag
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   379
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   380
  $ echo a > file
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   381
  $ hg ci -Am a -d '0 0'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   382
  adding file
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   383
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   384
  $ echo b >> file
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   385
  $ hg ci -m b -d '1 0'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   386
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   387
  $ echo c >> head1
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   388
  $ hg ci -Am h1c -d '2 0'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   389
  adding head1
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   390
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   391
  $ hg update -q 1
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   392
  $ echo d >> head2
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   393
  $ hg ci -Am h2d -d '3 0'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   394
  adding head2
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   395
  created new head
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   396
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   397
  $ echo e >> head2
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   398
  $ hg ci -m h2e -d '4 0'
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   399
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   400
  $ hg merge -q
19989
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   401
  $ hg ci -m merge -d '5 -3600'
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   402
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   403
  $ hg tag -r 1 -m t1 -d '6 0' t1
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   404
  $ hg tag -r 2 -m t2 -d '7 0' t2
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   405
  $ hg tag -r 3 -m t3 -d '8 0' t3
33862
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   406
  $ hg tag -r 4 -m t4 -d '4 0' t4 # older than t2, but should not matter
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   407
  $ hg tag -r 5 -m t5 -d '9 0' t5
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   408
  $ hg tag -r 3 -m at3 -d '10 0' at3
33861
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   409
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   410
  $ hg log -G --template "{rev}: {latesttag('re:^t[13]$') % '{tag}, C: {changes}, D: {distance}'}\n"
33862
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   411
  @  11: t3, C: 9, D: 8
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   412
  |
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   413
  o  10: t3, C: 8, D: 7
33861
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   414
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   415
  o  9: t3, C: 7, D: 6
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   416
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   417
  o  8: t3, C: 6, D: 5
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   418
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   419
  o  7: t3, C: 5, D: 4
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   420
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   421
  o  6: t3, C: 4, D: 3
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   422
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   423
  o    5: t3, C: 3, D: 2
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   424
  |\
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   425
  | o  4: t3, C: 1, D: 1
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   426
  | |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   427
  | o  3: t3, C: 0, D: 0
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   428
  | |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   429
  o |  2: t1, C: 1, D: 1
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   430
  |/
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   431
  o  1: t1, C: 0, D: 0
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   432
  |
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   433
  o  0: null, C: 1, D: 1
0e15d5ae52cf tests: use graph log in {latesttag} tests
Martin von Zweigbergk <martinvonz@google.com>
parents: 33542
diff changeset
   434
  
26485
43bf9471fae9 templater: introduce {latesttag()} function to match a pattern (issue4184)
Matt Harbison <matt_harbison@yahoo.com>
parents: 26234
diff changeset
   435
12283
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   436
  $ cd ..
850e089eb41c tests: unify test-command-template
Adrian Buehlmann <adrian@cadifra.com>
parents: 11656
diff changeset
   437
38448
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   438
Test filter() empty values:
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   439
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   440
  $ hg log -R a -r 1 -T '{filter(desc|splitlines) % "{line}\n"}'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   441
  other 1
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   442
  other 2
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   443
  other 3
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   444
  $ hg log -R a -r 0 -T '{filter(dict(a=0, b=1) % "{ifeq(key, "a", "{value}\n")}")}'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   445
  0
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   446
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   447
 0 should not be falsy
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   448
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   449
  $ hg log -R a -r 0 -T '{filter(revset("0:2"))}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   450
  0 1 2
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   451
38449
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   452
Test filter() by expression:
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   453
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   454
  $ hg log -R a -r 1 -T '{filter(desc|splitlines, ifcontains("1", line, "t"))}\n'
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   455
  other 1
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   456
  $ hg log -R a -r 0 -T '{filter(dict(a=0, b=1), ifeq(key, "b", "t"))}\n'
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   457
  b=1
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   458
38448
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   459
Test filter() shouldn't crash:
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   460
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   461
  $ hg log -R a -r 0 -T '{filter(extras)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   462
  branch=default
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   463
  $ hg log -R a -r 0 -T '{filter(files)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   464
  a
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   465
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   466
Test filter() unsupported arguments:
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   467
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   468
  $ hg log -R a -r 0 -T '{filter()}\n'
38449
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   469
  hg: parse error: filter expects one or two arguments
38448
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   470
  [255]
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   471
  $ hg log -R a -r 0 -T '{filter(date)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   472
  hg: parse error: date is not iterable
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   473
  [255]
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   474
  $ hg log -R a -r 0 -T '{filter(rev)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   475
  hg: parse error: 0 is not iterable
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   476
  [255]
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   477
  $ hg log -R a -r 0 -T '{filter(desc|firstline)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   478
  hg: parse error: 'line 1' is not filterable
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   479
  [255]
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   480
  $ hg log -R a -r 0 -T '{filter(manifest)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   481
  hg: parse error: '0:a0c8bcbbb45c' is not filterable
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   482
  [255]
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   483
  $ hg log -R a -r 0 -T '{filter(succsandmarkers)}\n'
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   484
  hg: parse error: not filterable without template
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   485
  [255]
38449
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   486
  $ hg log -R a -r 0 -T '{filter(desc|splitlines % "{line}", "")}\n'
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   487
  hg: parse error: not filterable by expression
bc8d925342f0 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org>
parents: 38448
diff changeset
   488
  [255]
38448
dae829b4de78 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org>
parents: 38447
diff changeset
   489
38228
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   490
Test manifest/get() can be join()-ed as string, though it's silly:
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   491
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   492
  $ hg log -R latesttag -r tip -T '{join(manifest, ".")}\n'
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   493
  1.1.:.2.b.c.6.e.9.0.0.6.c.e.2
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   494
  $ hg log -R latesttag -r tip -T '{join(get(extras, "branch"), ".")}\n'
8bded7eae26c templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38227
diff changeset
   495
  d.e.f.a.u.l.t
34330
89aec1834a86 templatekw: add new-style template expansion to {manifest}
Yuya Nishihara <yuya@tcha.org>
parents: 34329
diff changeset
   496
38227
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   497
Test join() over string
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   498
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   499
  $ hg log -R latesttag -r tip -T '{join(rev|stringify, ".")}\n'
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   500
  1.1
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   501
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   502
Test join() over uniterable
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   503
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   504
  $ hg log -R latesttag -r tip -T '{join(rev, "")}\n'
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   505
  hg: parse error: 11 is not iterable
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   506
  [255]
1c8098cf560a templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 37947
diff changeset
   507
34581
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   508
Test min/max of integers
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   509
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   510
  $ hg log -R latesttag -l1 -T '{min(revset("9:10"))}\n'
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   511
  9
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   512
  $ hg log -R latesttag -l1 -T '{max(revset("9:10"))}\n'
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   513
  10
ee0d74083a22 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org>
parents: 34541
diff changeset
   514
37499
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   515
Test min/max over map operation:
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   516
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   517
  $ hg log -R latesttag -r3 -T '{min(tags % "{tag}")}\n'
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   518
  at3
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   519
  $ hg log -R latesttag -r3 -T '{max(tags % "{tag}")}\n'
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   520
  t3
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   521
38265
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   522
Test min/max of strings:
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   523
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   524
  $ hg log -R latesttag -l1 -T '{min(desc)}\n'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   525
  3
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   526
  $ hg log -R latesttag -l1 -T '{max(desc)}\n'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   527
  t
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   528
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   529
Test min/max of non-iterable:
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   530
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   531
  $ hg debugtemplate '{min(1)}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   532
  hg: parse error: 1 is not iterable
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   533
  (min first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   534
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   535
  $ hg debugtemplate '{max(2)}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   536
  hg: parse error: 2 is not iterable
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   537
  (max first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   538
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   539
38285
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   540
  $ hg log -R latesttag -l1 -T '{min(date)}'
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   541
  hg: parse error: date is not iterable
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   542
  (min first argument should be an iterable)
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   543
  [255]
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   544
  $ hg log -R latesttag -l1 -T '{max(date)}'
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   545
  hg: parse error: date is not iterable
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   546
  (max first argument should be an iterable)
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   547
  [255]
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   548
38265
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   549
Test min/max of empty sequence:
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   550
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   551
  $ hg debugtemplate '{min("")}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   552
  hg: parse error: empty string
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   553
  (min first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   554
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   555
  $ hg debugtemplate '{max("")}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   556
  hg: parse error: empty string
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   557
  (max first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   558
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   559
  $ hg debugtemplate '{min(dict())}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   560
  hg: parse error: empty sequence
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   561
  (min first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   562
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   563
  $ hg debugtemplate '{max(dict())}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   564
  hg: parse error: empty sequence
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   565
  (max first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   566
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   567
  $ hg debugtemplate '{min(dict() % "")}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   568
  hg: parse error: empty sequence
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   569
  (min first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   570
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   571
  $ hg debugtemplate '{max(dict() % "")}'
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   572
  hg: parse error: empty sequence
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   573
  (max first argument should be an iterable)
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   574
  [255]
41ae9b3cbfb9 templater: abstract min/max away
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
   575
37015
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   576
Test min/max of if() result
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   577
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   578
  $ cd latesttag
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   579
  $ hg log -l1 -T '{min(if(true, revset("9:10"), ""))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   580
  9
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   581
  $ hg log -l1 -T '{max(if(false, "", revset("9:10")))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   582
  10
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   583
  $ hg log -l1 -T '{min(ifcontains("a", "aa", revset("9:10"), ""))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   584
  9
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   585
  $ hg log -l1 -T '{max(ifcontains("a", "bb", "", revset("9:10")))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   586
  10
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   587
  $ hg log -l1 -T '{min(ifeq(0, 0, revset("9:10"), ""))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   588
  9
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   589
  $ hg log -l1 -T '{max(ifeq(0, 1, "", revset("9:10")))}\n'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   590
  10
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   591
  $ cd ..
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   592
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   593
Test laziness of if() then/else clause
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   594
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   595
  $ hg debugtemplate '{count(0)}'
37229
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   596
  hg: parse error: not countable
05db42732fce templatefilters: handle TypeError by count()
Yuya Nishihara <yuya@tcha.org>
parents: 37227
diff changeset
   597
  (incompatible use of template filter 'count')
37015
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   598
  [255]
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   599
  $ hg debugtemplate '{if(true, "", count(0))}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   600
  $ hg debugtemplate '{if(false, count(0), "")}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   601
  $ hg debugtemplate '{ifcontains("a", "aa", "", count(0))}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   602
  $ hg debugtemplate '{ifcontains("a", "bb", count(0), "")}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   603
  $ hg debugtemplate '{ifeq(0, 0, "", count(0))}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   604
  $ hg debugtemplate '{ifeq(0, 1, count(0), "")}'
a318bb154d42 templatefuncs: do not stringify result of if*() expression
Yuya Nishihara <yuya@tcha.org>
parents: 36691
diff changeset
   605
19058
d8d548d868d3 template: call runtemplate on the src argument to sub
Sean Farley <sean.michael.farley@gmail.com>
parents: 18970
diff changeset
   606
Test the sub function of templating for expansion:
d8d548d868d3 template: call runtemplate on the src argument to sub
Sean Farley <sean.michael.farley@gmail.com>
parents: 18970
diff changeset
   607
d8d548d868d3 template: call runtemplate on the src argument to sub
Sean Farley <sean.michael.farley@gmail.com>
parents: 18970
diff changeset
   608
  $ hg log -R latesttag -r 10 --template '{sub("[0-9]", "x", "{rev}")}\n'
d8d548d868d3 template: call runtemplate on the src argument to sub
Sean Farley <sean.michael.farley@gmail.com>
parents: 18970
diff changeset
   609
  xx
19330
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   610
26188
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   611
  $ hg log -R latesttag -r 10 -T '{sub("[", "x", rev)}\n'
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   612
  hg: parse error: sub got an invalid pattern: [
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   613
  [255]
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   614
  $ hg log -R latesttag -r 10 -T '{sub("[0-9]", r"\1", rev)}\n'
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   615
  hg: parse error: sub got an invalid replacement: \1
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   616
  [255]
662ea52d5dca templater: catch regexp error at sub() function
Yuya Nishihara <yuya@tcha.org>
parents: 26128
diff changeset
   617
19330
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   618
Test the strip function with chars specified:
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   619
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   620
  $ hg log -R latesttag --template '{desc}\n'
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   621
  at3
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   622
  t5
33862
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   623
  t4
19330
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   624
  t3
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   625
  t2
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   626
  t1
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   627
  merge
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   628
  h2e
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   629
  h2d
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   630
  h1c
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   631
  b
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   632
  a
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   633
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   634
  $ hg log -R latesttag --template '{strip(desc, "te")}\n'
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   635
  at3
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   636
  5
33862
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   637
  4
19330
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   638
  3
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   639
  2
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   640
  1
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   641
  merg
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   642
  h2
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   643
  h2d
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   644
  h1c
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   645
  b
867b9957d895 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru>
parents: 19127
diff changeset
   646
  a
20066
64b4f0cd7336 templater: fix escaping in nested string literals (issue4102)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   647
19989
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   648
Test date format:
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   649
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   650
  $ hg log -R latesttag --template 'date: {date(date, "%y %m %d %S %z")}\n'
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   651
  date: 70 01 01 10 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   652
  date: 70 01 01 09 +0000
33862
fb672eac2702 templatekw: choose {latesttag} by len(changes), not date (issue5659)
Martin von Zweigbergk <martinvonz@google.com>
parents: 33861
diff changeset
   653
  date: 70 01 01 04 +0000
19989
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   654
  date: 70 01 01 08 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   655
  date: 70 01 01 07 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   656
  date: 70 01 01 06 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   657
  date: 70 01 01 05 +0100
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   658
  date: 70 01 01 04 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   659
  date: 70 01 01 03 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   660
  date: 70 01 01 02 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   661
  date: 70 01 01 01 +0000
c38c3fdc8b93 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com>
parents: 19770
diff changeset
   662
  date: 70 01 01 00 +0000
20072
6d4fda48b4e3 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20008 20067
diff changeset
   663
24903
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   664
Test invalid date:
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   665
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   666
  $ hg log -R latesttag -T '{date(rev)}\n'
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   667
  hg: parse error: date expects a date information
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   668
  [255]
09124cce913f templater: fix crash by passing invalid object to date() function
Yuya Nishihara <yuya@tcha.org>
parents: 24886
diff changeset
   669
38434
70f551a3f52e tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org>
parents: 38433
diff changeset
   670
Set up repository containing template fragments in commit metadata:
20067
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   671
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   672
  $ hg init r
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   673
  $ cd r
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   674
  $ echo a > a
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   675
  $ hg ci -Am '{rev}'
3d8bfe2ecf6d templater: only recursively evaluate string literals as templates (issue4103)
Matt Mackall <mpm@selenic.com>
parents: 20066
diff changeset
   676
  adding a
20076
faa4b3fc4197 templater: makes branches work correctly with stringify (issue4108)
Matt Mackall <mpm@selenic.com>
parents: 20067
diff changeset
   677
20661
7e627fe63e5e templater: avoid recursive evaluation of string literals completely
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20079
diff changeset
   678
  $ hg branch -q 'text.{rev}'
7e627fe63e5e templater: avoid recursive evaluation of string literals completely
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20079
diff changeset
   679
  $ echo aa >> aa
7e627fe63e5e templater: avoid recursive evaluation of string literals completely
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20079
diff changeset
   680
  $ hg ci -u '{node|short}' -m 'desc to be wrapped desc to be wrapped'
7e627fe63e5e templater: avoid recursive evaluation of string literals completely
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20079
diff changeset
   681
28373
9a9dd71e882c templater: make label() take unknown symbol as color literal
Yuya Nishihara <yuya@tcha.org>
parents: 28349
diff changeset
   682
color effect can be specified without quoting:
9a9dd71e882c templater: make label() take unknown symbol as color literal
Yuya Nishihara <yuya@tcha.org>
parents: 28349
diff changeset
   683
9a9dd71e882c templater: make label() take unknown symbol as color literal
Yuya Nishihara <yuya@tcha.org>
parents: 28349
diff changeset
   684
  $ hg log --color=always -l 1 --template '{label(red, "text\n")}'
9a9dd71e882c templater: make label() take unknown symbol as color literal
Yuya Nishihara <yuya@tcha.org>
parents: 28349
diff changeset
   685
  \x1b[0;31mtext\x1b[0m (esc)
9a9dd71e882c templater: make label() take unknown symbol as color literal
Yuya Nishihara <yuya@tcha.org>
parents: 28349
diff changeset
   686
31518
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   687
color effects can be nested (issue5413)
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   688
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   689
  $ hg debugtemplate --color=always \
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   690
  > '{label(red, "red{label(magenta, "ma{label(cyan, "cyan")}{label(yellow, "yellow")}genta")}")}\n'
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   691
  \x1b[0;31mred\x1b[0;35mma\x1b[0;36mcyan\x1b[0m\x1b[0;31m\x1b[0;35m\x1b[0;33myellow\x1b[0m\x1b[0;31m\x1b[0;35mgenta\x1b[0m (esc)
43d6ef658874 color: insert color code after every "\e[0m" (issue5413)
Yuya Nishihara <yuya@tcha.org>
parents: 30732
diff changeset
   692
31521
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   693
pad() should interact well with color codes (issue5416)
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   694
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   695
  $ hg debugtemplate --color=always \
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   696
  > '{pad(label(red, "red"), 5, label(cyan, "-"))}\n'
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   697
  \x1b[0;31mred\x1b[0m\x1b[0;36m-\x1b[0m\x1b[0;36m-\x1b[0m (esc)
44c591f63458 templater: make pad() strip color codes before computing width (issue5416)
Yuya Nishihara <yuya@tcha.org>
parents: 31520
diff changeset
   698
28374
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   699
label should be no-op if color is disabled:
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   700
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   701
  $ hg log --color=never -l 1 --template '{label(red, "text\n")}'
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   702
  text
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   703
  $ hg log --config extensions.color=! -l 1 --template '{label(red, "text\n")}'
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   704
  text
af3bd9d1dbc1 templater: move label() function from color extension
Yuya Nishihara <yuya@tcha.org>
parents: 28373
diff changeset
   705
20076
faa4b3fc4197 templater: makes branches work correctly with stringify (issue4108)
Matt Mackall <mpm@selenic.com>
parents: 20067
diff changeset
   706
Test branches inside if statement:
faa4b3fc4197 templater: makes branches work correctly with stringify (issue4108)
Matt Mackall <mpm@selenic.com>
parents: 20067
diff changeset
   707
faa4b3fc4197 templater: makes branches work correctly with stringify (issue4108)
Matt Mackall <mpm@selenic.com>
parents: 20067
diff changeset
   708
  $ hg log -r 0 --template '{if(branches, "yes", "no")}\n'
faa4b3fc4197 templater: makes branches work correctly with stringify (issue4108)
Matt Mackall <mpm@selenic.com>
parents: 20067
diff changeset
   709
  no
20662
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
   710
31926
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   711
Test dict constructor:
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   712
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   713
  $ hg log -r 0 -T '{dict(y=node|short, x=rev)}\n'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   714
  y=f7769ec2ab97 x=0
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   715
  $ hg log -r 0 -T '{dict(x=rev, y=node|short) % "{key}={value}\n"}'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   716
  x=0
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   717
  y=f7769ec2ab97
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   718
  $ hg log -r 0 -T '{dict(x=rev, y=node|short)|json}\n'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   719
  {"x": 0, "y": "f7769ec2ab97"}
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   720
  $ hg log -r 0 -T '{dict()|json}\n'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   721
  {}
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   722
31928
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   723
  $ hg log -r 0 -T '{dict(rev, node=node|short)}\n'
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   724
  rev=0 node=f7769ec2ab97
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   725
  $ hg log -r 0 -T '{dict(rev, node|short)}\n'
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   726
  rev=0 node=f7769ec2ab97
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   727
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   728
  $ hg log -r 0 -T '{dict(rev, rev=rev)}\n'
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   729
  hg: parse error: duplicated dict key 'rev' inferred
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   730
  [255]
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   731
  $ hg log -r 0 -T '{dict(node, node|short)}\n'
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   732
  hg: parse error: duplicated dict key 'node' inferred
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   733
  [255]
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   734
  $ hg log -r 0 -T '{dict(1 + 2)}'
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   735
  hg: parse error: dict key cannot be inferred
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   736
  [255]
277b3e2d711b templater: add shorthand for building a dict like {"key": key}
Yuya Nishihara <yuya@tcha.org>
parents: 31927
diff changeset
   737
31926
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   738
  $ hg log -r 0 -T '{dict(x=rev, x=node)}'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   739
  hg: parse error: dict got multiple values for keyword argument 'x'
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   740
  [255]
932241b8c644 templater: add dict() constructor
Yuya Nishihara <yuya@tcha.org>
parents: 31887
diff changeset
   741
24241
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   742
Test get function:
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   743
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   744
  $ hg log -r 0 --template '{get(extras, "branch")}\n'
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   745
  default
28331
2874db5462d3 templater: fix get() to evaluate arguments eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28270
diff changeset
   746
  $ hg log -r 0 --template '{get(extras, "br{"anch"}")}\n'
2874db5462d3 templater: fix get() to evaluate arguments eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28270
diff changeset
   747
  default
24241
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   748
  $ hg log -r 0 --template '{get(files, "should_fail")}\n'
38243
06d11cd90516 templater: promote getmember() to an interface of wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38229
diff changeset
   749
  hg: parse error: not a dictionary
06d11cd90516 templater: promote getmember() to an interface of wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38229
diff changeset
   750
  (get() expects a dict as first argument)
24241
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   751
  [255]
e7baf88c29c3 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org>
parents: 24240
diff changeset
   752
38285
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   753
Test json filter applied to wrapped object:
31882
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   754
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   755
  $ hg log -r0 -T '{files|json}\n'
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   756
  ["a"]
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   757
  $ hg log -r0 -T '{extras|json}\n'
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   758
  {"branch": "default"}
38285
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   759
  $ hg log -r0 -T '{date|json}\n'
8d6109b49b31 templater: introduce a wrapper for date tuple (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 38277
diff changeset
   760
  [0, 0]
31882
ba5b74f780d5 templater: make _hybrid provide more list/dict-like methods
Yuya Nishihara <yuya@tcha.org>
parents: 31807
diff changeset
   761
37499
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   762
Test json filter applied to map result:
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   763
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   764
  $ hg log -r0 -T '{json(extras % "{key}")}\n'
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   765
  ["branch"]
75c13343cf38 templater: wrap result of '%' operation so it never looks like a thunk
Yuya Nishihara <yuya@tcha.org>
parents: 37418
diff changeset
   766
26128
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   767
Test localdate(date, tz) function:
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   768
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   769
  $ TZ=JST-09 hg log -r0 -T '{date|localdate|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   770
  1970-01-01 09:00 +0900
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   771
  $ TZ=JST-09 hg log -r0 -T '{localdate(date, "UTC")|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   772
  1970-01-01 00:00 +0000
29636
84ef4517de03 date: refactor timezone parsing
Matt Mackall <mpm@selenic.com>
parents: 29624
diff changeset
   773
  $ TZ=JST-09 hg log -r0 -T '{localdate(date, "blahUTC")|isodate}\n'
84ef4517de03 date: refactor timezone parsing
Matt Mackall <mpm@selenic.com>
parents: 29624
diff changeset
   774
  hg: parse error: localdate expects a timezone
84ef4517de03 date: refactor timezone parsing
Matt Mackall <mpm@selenic.com>
parents: 29624
diff changeset
   775
  [255]
26128
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   776
  $ TZ=JST-09 hg log -r0 -T '{localdate(date, "+0200")|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   777
  1970-01-01 02:00 +0200
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   778
  $ TZ=JST-09 hg log -r0 -T '{localdate(date, "0")|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   779
  1970-01-01 00:00 +0000
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   780
  $ TZ=JST-09 hg log -r0 -T '{localdate(date, 0)|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   781
  1970-01-01 00:00 +0000
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   782
  $ hg log -r0 -T '{localdate(date, "invalid")|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   783
  hg: parse error: localdate expects a timezone
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   784
  [255]
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   785
  $ hg log -r0 -T '{localdate(date, date)|isodate}\n'
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   786
  hg: parse error: localdate expects a timezone
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   787
  [255]
51f6940d3b4f templater: add optional timezone argument to localdate()
Yuya Nishihara <yuya@tcha.org>
parents: 26127
diff changeset
   788
20369
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   789
Test shortest(node) function:
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   790
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   791
  $ echo b > b
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   792
  $ hg ci -qAm b
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   793
  $ hg log --template '{shortest(node)}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   794
  e777
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   795
  bcc7
20369
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   796
  f776
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   797
  $ hg log --template '{shortest(node, 10)}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   798
  e777603221
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   799
  bcc7ff960b
20369
9c6b86dd2ed2 template: add shortest(node) template function
Durham Goode <durham@fb.com>
parents: 20079
diff changeset
   800
  f7769ec2ab
26105
d67341f55429 templater: introduce unified filter syntax for unary functions
Yuya Nishihara <yuya@tcha.org>
parents: 25862
diff changeset
   801
  $ hg log --template '{node|shortest}\n' -l1
d67341f55429 templater: introduce unified filter syntax for unary functions
Yuya Nishihara <yuya@tcha.org>
parents: 25862
diff changeset
   802
  e777
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   803
28346
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   804
  $ hg log -r 0 -T '{shortest(node, "1{"0"}")}\n'
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   805
  f7769ec2ab
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   806
  $ hg log -r 0 -T '{shortest(node, "not an int")}\n'
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   807
  hg: parse error: shortest() expects an integer minlength
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   808
  [255]
542d200bd261 templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28345
diff changeset
   809
32684
af854b1b36f8 revlog: add support for partial matching of wdir node id
Yuya Nishihara <yuya@tcha.org>
parents: 32039
diff changeset
   810
  $ hg log -r 'wdir()' -T '{node|shortest}\n'
af854b1b36f8 revlog: add support for partial matching of wdir node id
Yuya Nishihara <yuya@tcha.org>
parents: 32039
diff changeset
   811
  ffff
af854b1b36f8 revlog: add support for partial matching of wdir node id
Yuya Nishihara <yuya@tcha.org>
parents: 32039
diff changeset
   812
37709
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   813
  $ hg log --template '{shortest("f")}\n' -l1
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   814
  f
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   815
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   816
  $ hg log --template '{shortest("0123456789012345678901234567890123456789")}\n' -l1
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   817
  0123456789012345678901234567890123456789
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   818
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   819
  $ hg log --template '{shortest("01234567890123456789012345678901234567890123456789")}\n' -l1
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   820
  01234567890123456789012345678901234567890123456789
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   821
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   822
  $ hg log --template '{shortest("not a hex string")}\n' -l1
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   823
  not a hex string
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   824
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   825
  $ hg log --template '{shortest("not a hex string, but it'\''s 40 bytes long")}\n' -l1
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   826
  not a hex string, but it's 40 bytes long
7b2955624777 scmutil: make shortesthexnodeidprefix() take a full binary nodeid
Martin von Zweigbergk <martinvonz@google.com>
parents: 37499
diff changeset
   827
37859
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   828
  $ hg log --template '{shortest("ffffffffffffffffffffffffffffffffffffffff")}\n' -l1
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   829
  ffff
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   830
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   831
  $ hg log --template '{shortest("fffffff")}\n' -l1
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   832
  ffff
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   833
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   834
  $ hg log --template '{shortest("ff")}\n' -l1
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   835
  ffff
66dc9db6ed2c shortest: make {shortest("fffffffff")} work again
Martin von Zweigbergk <martinvonz@google.com>
parents: 37772
diff changeset
   836
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   837
  $ cd ..
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   838
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   839
Test shortest(node) with the repo having short hash collision:
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   840
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   841
  $ hg init hashcollision
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   842
  $ cd hashcollision
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   843
  $ cat <<EOF >> .hg/hgrc
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   844
  > [experimental]
34866
1644623ab096 config: use 'experimental.evolution.create-markers'
Boris Feld <boris.feld@octobus.net>
parents: 34715
diff changeset
   845
  > evolution.createmarkers=True
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   846
  > EOF
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   847
  $ echo 0 > a
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   848
  $ hg ci -qAm 0
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   849
  $ for i in 17 129 248 242 480 580 617 1057 2857 4025; do
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   850
  >   hg up -q 0
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   851
  >   echo $i > a
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   852
  >   hg ci -qm $i
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   853
  > done
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   854
  $ hg up -q null
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   855
  $ hg log -r0: -T '{rev}:{node}\n'
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   856
  0:b4e73ffab476aa0ee32ed81ca51e07169844bc6a
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   857
  1:11424df6dc1dd4ea255eae2b58eaca7831973bbc
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   858
  2:11407b3f1b9c3e76a79c1ec5373924df096f0499
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   859
  3:11dd92fe0f39dfdaacdaa5f3997edc533875cfc4
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   860
  4:10776689e627b465361ad5c296a20a487e153ca4
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   861
  5:a00be79088084cb3aff086ab799f8790e01a976b
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   862
  6:a0b0acd79b4498d0052993d35a6a748dd51d13e6
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   863
  7:a0457b3450b8e1b778f1163b31a435802987fe5d
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   864
  8:c56256a09cd28e5764f32e8e2810d0f01e2e357a
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   865
  9:c5623987d205cd6d9d8389bfc40fff9dbb670b48
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   866
  10:c562ddd9c94164376c20b86b0b4991636a3bf84f
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   867
  $ hg debugobsolete a00be79088084cb3aff086ab799f8790e01a976b
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33262
diff changeset
   868
  obsoleted 1 changesets
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   869
  $ hg debugobsolete c5623987d205cd6d9d8389bfc40fff9dbb670b48
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33262
diff changeset
   870
  obsoleted 1 changesets
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   871
  $ hg debugobsolete c562ddd9c94164376c20b86b0b4991636a3bf84f
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33262
diff changeset
   872
  obsoleted 1 changesets
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   873
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   874
 nodes starting with '11' (we don't have the revision number '11' though)
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   875
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   876
  $ hg log -r 1:3 -T '{rev}:{shortest(node, 0)}\n'
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   877
  1:1142
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   878
  2:1140
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   879
  3:11d
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   880
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   881
 '5:a00' is hidden, but still we have two nodes starting with 'a0'
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   882
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   883
  $ hg log -r 6:7 -T '{rev}:{shortest(node, 0)}\n'
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   884
  6:a0b
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   885
  7:a04
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   886
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   887
 node '10' conflicts with the revision number '10' even if it is hidden
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   888
 (we could exclude hidden revision numbers, but currently we don't)
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   889
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   890
  $ hg log -r 4 -T '{rev}:{shortest(node, 0)}\n'
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   891
  4:107
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   892
  $ hg log -r 4 -T '{rev}:{shortest(node, 0)}\n' --hidden
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   893
  4:107
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   894
38856
a01200b25da6 shortest: use 'x' prefix to disambiguate from revnum if configured
Martin von Zweigbergk <martinvonz@google.com>
parents: 38449
diff changeset
   895
  $ hg --config experimental.revisions.prefixhexnode=yes log -r 4 -T '{rev}:{shortest(node, 0)}\n'
a01200b25da6 shortest: use 'x' prefix to disambiguate from revnum if configured
Martin von Zweigbergk <martinvonz@google.com>
parents: 38449
diff changeset
   896
  4:x10
a01200b25da6 shortest: use 'x' prefix to disambiguate from revnum if configured
Martin von Zweigbergk <martinvonz@google.com>
parents: 38449
diff changeset
   897
  $ hg --config experimental.revisions.prefixhexnode=yes log -r 4 -T '{rev}:{shortest(node, 0)}\n' --hidden
a01200b25da6 shortest: use 'x' prefix to disambiguate from revnum if configured
Martin von Zweigbergk <martinvonz@google.com>
parents: 38449
diff changeset
   898
  4:x10
a01200b25da6 shortest: use 'x' prefix to disambiguate from revnum if configured
Martin von Zweigbergk <martinvonz@google.com>
parents: 38449
diff changeset
   899
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   900
 node 'c562' should be unique if the other 'c562' nodes are hidden
30232
362740e05460 templater: use unfiltered changelog to calculate shortest() at constant time
Yuya Nishihara <yuya@tcha.org>
parents: 30231
diff changeset
   901
 (but we don't try the slow path to filter out hidden nodes for now)
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   902
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   903
  $ hg log -r 8 -T '{rev}:{node|shortest}\n'
30232
362740e05460 templater: use unfiltered changelog to calculate shortest() at constant time
Yuya Nishihara <yuya@tcha.org>
parents: 30231
diff changeset
   904
  8:c5625
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   905
  $ hg log -r 8:10 -T '{rev}:{node|shortest}\n' --hidden
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   906
  8:c5625
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   907
  9:c5623
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   908
  10:c562d
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   909
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   910
  $ cd ..
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   911
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   912
Test pad function
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   913
30231
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   914
  $ cd r
741e5d7f282d templater: do not use index.partialmatch() directly to calculate shortest()
Yuya Nishihara <yuya@tcha.org>
parents: 30115
diff changeset
   915
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   916
  $ hg log --template '{pad(rev, 20)} {author|user}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   917
  2                    test
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   918
  1                    {node|short}
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   919
  0                    test
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   920
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   921
  $ hg log --template '{pad(rev, 20, " ", True)} {author|user}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   922
                     2 test
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   923
                     1 {node|short}
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   924
                     0 test
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   925
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   926
  $ hg log --template '{pad(rev, 20, "-", False)} {author|user}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   927
  2------------------- test
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
   928
  1------------------- {node|short}
20370
aa51392da507 template: add pad function for padding output
Durham Goode <durham@fb.com>
parents: 20369
diff changeset
   929
  0------------------- test
20518
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
   930
25509
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   931
Test template string in pad function
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   932
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   933
  $ hg log -r 0 -T '{pad("\{{rev}}", 10)} {author|user}\n'
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   934
  {0}        test
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   935
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   936
  $ hg log -r 0 -T '{pad(r"\{rev}", 10)} {author|user}\n'
25597
fd5bc660c9f0 templater: do not reevaluate rawstring as template (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 25596
diff changeset
   937
  \{rev}     test
25509
576d6c74784b templater: make pad function evaluate both string and rawstring templates
Yuya Nishihara <yuya@tcha.org>
parents: 25490
diff changeset
   938
28345
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   939
Test width argument passed to pad function
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   940
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   941
  $ hg log -r 0 -T '{pad(rev, "1{"0"}")} {author|user}\n'
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   942
  0          test
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   943
  $ hg log -r 0 -T '{pad(rev, "not an int")}\n'
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   944
  hg: parse error: pad() expects an integer width
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   945
  [255]
d81437c91a26 templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org>
parents: 28344
diff changeset
   946
31519
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   947
Test invalid fillchar passed to pad function
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   948
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   949
  $ hg log -r 0 -T '{pad(rev, 10, "")}\n'
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   950
  hg: parse error: pad() expects a single fill character
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   951
  [255]
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   952
  $ hg log -r 0 -T '{pad(rev, 10, "--")}\n'
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   953
  hg: parse error: pad() expects a single fill character
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   954
  [255]
3725986b151a templater: reject bad fillchar argument passed to pad()
Yuya Nishihara <yuya@tcha.org>
parents: 31518
diff changeset
   955
29817
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   956
Test boolean argument passed to pad function
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   957
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   958
 no crash
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   959
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   960
  $ hg log -r 0 -T '{pad(rev, 10, "-", "f{"oo"}")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   961
  ---------0
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   962
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   963
 string/literal
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   964
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   965
  $ hg log -r 0 -T '{pad(rev, 10, "-", "false")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   966
  ---------0
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   967
  $ hg log -r 0 -T '{pad(rev, 10, "-", false)}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   968
  0---------
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   969
  $ hg log -r 0 -T '{pad(rev, 10, "-", "")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   970
  0---------
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   971
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   972
 unknown keyword is evaluated to ''
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   973
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   974
  $ hg log -r 0 -T '{pad(rev, 10, "-", unknownkeyword)}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   975
  0---------
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   976
29085
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   977
Test separate function
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   978
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   979
  $ hg log -r 0 -T '{separate("-", "", "a", "b", "", "", "c", "")}\n'
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   980
  a-b-c
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   981
  $ hg log -r 0 -T '{separate(" ", "{rev}:{node|short}", author|user, branch)}\n'
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   982
  0:f7769ec2ab97 test default
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   983
  $ hg log -r 0 --color=always -T '{separate(" ", "a", label(red, "b"), "c", label(red, ""), "d")}\n'
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   984
  a \x1b[0;31mb\x1b[0m c d (esc)
df838803c1d4 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com>
parents: 29059
diff changeset
   985
29817
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   986
Test boolean expression/literal passed to if function
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   987
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   988
  $ hg log -r 0 -T '{if(rev, "rev 0 is True")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   989
  rev 0 is True
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   990
  $ hg log -r 0 -T '{if(0, "literal 0 is True as well")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   991
  literal 0 is True as well
38447
b6294c113794 templater: fix truth testing of integer 0 taken from a list/dict
Yuya Nishihara <yuya@tcha.org>
parents: 38435
diff changeset
   992
  $ hg log -r 0 -T '{if(min(revset(r"0")), "0 of hybriditem is also True")}\n'
b6294c113794 templater: fix truth testing of integer 0 taken from a list/dict
Yuya Nishihara <yuya@tcha.org>
parents: 38435
diff changeset
   993
  0 of hybriditem is also True
29817
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   994
  $ hg log -r 0 -T '{if("", "", "empty string is False")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   995
  empty string is False
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   996
  $ hg log -r 0 -T '{if(revset(r"0 - 0"), "", "empty list is False")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
   997
  empty list is False
38289
f9c426385853 templater: abstract truth testing to fix {if(list_of_empty_strings)}
Yuya Nishihara <yuya@tcha.org>
parents: 38286
diff changeset
   998
  $ hg log -r 0 -T '{if(revset(r"0"), "non-empty list is True")}\n'
f9c426385853 templater: abstract truth testing to fix {if(list_of_empty_strings)}
Yuya Nishihara <yuya@tcha.org>
parents: 38286
diff changeset
   999
  non-empty list is True
f9c426385853 templater: abstract truth testing to fix {if(list_of_empty_strings)}
Yuya Nishihara <yuya@tcha.org>
parents: 38286
diff changeset
  1000
  $ hg log -r 0 -T '{if(revset(r"0") % "", "list of empty strings is True")}\n'
f9c426385853 templater: abstract truth testing to fix {if(list_of_empty_strings)}
Yuya Nishihara <yuya@tcha.org>
parents: 38286
diff changeset
  1001
  list of empty strings is True
29817
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1002
  $ hg log -r 0 -T '{if(true, "true is True")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1003
  true is True
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1004
  $ hg log -r 0 -T '{if(false, "", "false is False")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1005
  false is False
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1006
  $ hg log -r 0 -T '{if("false", "non-empty string is True")}\n'
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1007
  non-empty string is True
cc11079644fc templater: make pad() evaluate boolean argument (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 29636
diff changeset
  1008
20518
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
  1009
Test ifcontains function
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
  1010
22843
b6531d806de8 templater: fix ifcontains when list is a string (issue4399)
Matt Mackall <mpm@selenic.com>
parents: 22582
diff changeset
  1011
  $ hg log --template '{rev} {ifcontains(rev, "2 two 0", "is in the string", "is not")}\n'
b6531d806de8 templater: fix ifcontains when list is a string (issue4399)
Matt Mackall <mpm@selenic.com>
parents: 22582
diff changeset
  1012
  2 is in the string
b6531d806de8 templater: fix ifcontains when list is a string (issue4399)
Matt Mackall <mpm@selenic.com>
parents: 22582
diff changeset
  1013
  1 is not
b6531d806de8 templater: fix ifcontains when list is a string (issue4399)
Matt Mackall <mpm@selenic.com>
parents: 22582
diff changeset
  1014
  0 is in the string
b6531d806de8 templater: fix ifcontains when list is a string (issue4399)
Matt Mackall <mpm@selenic.com>
parents: 22582
diff changeset
  1015
28332
e91371633127 templater: fix ifcontains() to evaluate items argument eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28331
diff changeset
  1016
  $ hg log -T '{rev} {ifcontains(rev, "2 two{" 0"}", "is in the string", "is not")}\n'
e91371633127 templater: fix ifcontains() to evaluate items argument eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28331
diff changeset
  1017
  2 is in the string
e91371633127 templater: fix ifcontains() to evaluate items argument eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28331
diff changeset
  1018
  1 is not
e91371633127 templater: fix ifcontains() to evaluate items argument eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28331
diff changeset
  1019
  0 is in the string
e91371633127 templater: fix ifcontains() to evaluate items argument eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28331
diff changeset
  1020
20518
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
  1021
  $ hg log --template '{rev} {ifcontains("a", file_adds, "added a", "did not add a")}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1022
  2 did not add a
20518
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
  1023
  1 did not add a
1e43f15a647f template: add ifcontains template function
Durham Goode <durham@fb.com>
parents: 20370
diff changeset
  1024
  0 added a
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1025
28270
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1026
  $ hg log --debug -T '{rev}{ifcontains(1, parents, " is parent of 1")}\n'
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1027
  2 is parent of 1
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1028
  1
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1029
  0
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1030
38267
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1031
  $ hg log -l1 -T '{ifcontains("branch", extras, "t", "f")}\n'
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1032
  t
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1033
  $ hg log -l1 -T '{ifcontains("branch", extras % "{key}", "t", "f")}\n'
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1034
  t
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1035
  $ hg log -l1 -T '{ifcontains("branc", extras % "{key}", "t", "f")}\n'
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1036
  f
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1037
  $ hg log -l1 -T '{ifcontains("branc", stringify(extras % "{key}"), "t", "f")}\n'
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1038
  t
fb874fc1d9b4 templater: abstract ifcontains() over wrapped types
Yuya Nishihara <yuya@tcha.org>
parents: 38265
diff changeset
  1039
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1040
Test revset function
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1041
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1042
  $ hg log --template '{rev} {ifcontains(rev, revset("."), "current rev", "not current rev")}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1043
  2 current rev
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1044
  1 not current rev
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1045
  0 not current rev
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1046
21540
d8fb835376d1 templates: fix ifcontains against sets with length > 1 (issue4259)
Durham Goode <durham@fb.com>
parents: 21024
diff changeset
  1047
  $ hg log --template '{rev} {ifcontains(rev, revset(". + .^"), "match rev", "not match rev")}\n'
d8fb835376d1 templates: fix ifcontains against sets with length > 1 (issue4259)
Durham Goode <durham@fb.com>
parents: 21024
diff changeset
  1048
  2 match rev
d8fb835376d1 templates: fix ifcontains against sets with length > 1 (issue4259)
Durham Goode <durham@fb.com>
parents: 21024
diff changeset
  1049
  1 match rev
d8fb835376d1 templates: fix ifcontains against sets with length > 1 (issue4259)
Durham Goode <durham@fb.com>
parents: 21024
diff changeset
  1050
  0 not match rev
d8fb835376d1 templates: fix ifcontains against sets with length > 1 (issue4259)
Durham Goode <durham@fb.com>
parents: 21024
diff changeset
  1051
34659
3edfd472f3cb templater: fix ifcontains() to handle type mismatch gracefully
Yuya Nishihara <yuya@tcha.org>
parents: 34581
diff changeset
  1052
  $ hg log -T '{ifcontains(desc, revset(":"), "", "type not match")}\n' -l1
3edfd472f3cb templater: fix ifcontains() to handle type mismatch gracefully
Yuya Nishihara <yuya@tcha.org>
parents: 34581
diff changeset
  1053
  type not match
3edfd472f3cb templater: fix ifcontains() to handle type mismatch gracefully
Yuya Nishihara <yuya@tcha.org>
parents: 34581
diff changeset
  1054
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1055
  $ hg log --template '{rev} Parents: {revset("parents(%s)", rev)}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1056
  2 Parents: 1
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1057
  1 Parents: 0
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1058
  0 Parents: 
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1059
22304
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1060
  $ cat >> .hg/hgrc <<EOF
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1061
  > [revsetalias]
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1062
  > myparents(\$1) = parents(\$1)
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1063
  > EOF
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1064
  $ hg log --template '{rev} Parents: {revset("myparents(%s)", rev)}\n'
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1065
  2 Parents: 1
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1066
  1 Parents: 0
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1067
  0 Parents: 
5678b0e3608f templater: enable alias predicates to be used in "revset()" function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21944
diff changeset
  1068
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1069
  $ hg log --template 'Rev: {rev}\n{revset("::%s", rev) % "Ancestor: {revision}\n"}\n'
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1070
  Rev: 2
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1071
  Ancestor: 0
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1072
  Ancestor: 1
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1073
  Ancestor: 2
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1074
  
20519
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1075
  Rev: 1
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1076
  Ancestor: 0
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1077
  Ancestor: 1
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1078
  
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1079
  Rev: 0
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1080
  Ancestor: 0
cda9d2b6beab template: add revset() template function
Durham Goode <durham@fb.com>
parents: 20518
diff changeset
  1081
  
25637
5eccebe23942 templater: evaluate "query" argument passed to revset()
Yuya Nishihara <yuya@tcha.org>
parents: 25562
diff changeset
  1082
  $ hg log --template '{revset("TIP"|lower)}\n' -l1
5eccebe23942 templater: evaluate "query" argument passed to revset()
Yuya Nishihara <yuya@tcha.org>
parents: 25562
diff changeset
  1083
  2
5eccebe23942 templater: evaluate "query" argument passed to revset()
Yuya Nishihara <yuya@tcha.org>
parents: 25562
diff changeset
  1084
28333
41373244f4e5 templater: fix revset() to evaluate format arguments eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28332
diff changeset
  1085
  $ hg log -T '{revset("%s", "t{"ip"}")}\n' -l1
41373244f4e5 templater: fix revset() to evaluate format arguments eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28332
diff changeset
  1086
  2
41373244f4e5 templater: fix revset() to evaluate format arguments eagerly
Yuya Nishihara <yuya@tcha.org>
parents: 28332
diff changeset
  1087
28270
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1088
 a list template is evaluated for each item of revset/parents
26234
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1089
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1090
  $ hg log -T '{rev} p: {revset("p1(%s)", rev) % "{rev}:{node|short}"}\n'
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1091
  2 p: 1:bcc7ff960b8e
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1092
  1 p: 0:f7769ec2ab97
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1093
  0 p: 
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1094
28270
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1095
  $ hg log --debug -T '{rev} p:{parents % " {rev}:{node|short}"}\n'
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1096
  2 p: 1:bcc7ff960b8e -1:000000000000
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1097
  1 p: 0:f7769ec2ab97 -1:000000000000
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1098
  0 p: -1:000000000000 -1:000000000000
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1099
26234
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1100
 therefore, 'revcache' should be recreated for each rev
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1101
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1102
  $ hg log -T '{rev} {file_adds}\np {revset("p1(%s)", rev) % "{file_adds}"}\n'
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1103
  2 aa b
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1104
  p 
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1105
  1 
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1106
  p a
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1107
  0 a
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1108
  p 
e4609ec959f8 templater: switch ctx of list expression to rev of revset() (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 26222
diff changeset
  1109
28270
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1110
  $ hg log --debug -T '{rev} {file_adds}\np {parents % "{file_adds}"}\n'
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1111
  2 aa b
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1112
  p 
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1113
  1 
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1114
  p a
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1115
  0 a
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1116
  p 
650c9f69a744 templatekw: switch ctx of list expression to rev of {parents} (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 28239
diff changeset
  1117
28177
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1118
a revset item must be evaluated as an integer revision, not an offset from tip
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1119
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1120
  $ hg log -l 1 -T '{revset("null") % "{rev}:{node|short}"}\n'
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1121
  -1:000000000000
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1122
  $ hg log -l 1 -T '{revset("%s", "null") % "{rev}:{node|short}"}\n'
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1123
  -1:000000000000
ab8107c923b4 templater: evaluate each item of revset() as integer revision
Yuya Nishihara <yuya@tcha.org>
parents: 27994
diff changeset
  1124
29623
33bf8bd8c5b9 templatekw: fix join format of revset() function
Yuya Nishihara <yuya@tcha.org>
parents: 29085
diff changeset
  1125
join() should pick '{rev}' from revset items:
33bf8bd8c5b9 templatekw: fix join format of revset() function
Yuya Nishihara <yuya@tcha.org>
parents: 29085
diff changeset
  1126
33bf8bd8c5b9 templatekw: fix join format of revset() function
Yuya Nishihara <yuya@tcha.org>
parents: 29085
diff changeset
  1127
  $ hg log -R ../a -T '{join(revset("parents(%d)", rev), ", ")}\n' -r6
33bf8bd8c5b9 templatekw: fix join format of revset() function
Yuya Nishihara <yuya@tcha.org>
parents: 29085
diff changeset
  1128
  4, 5
33bf8bd8c5b9 templatekw: fix join format of revset() function
Yuya Nishihara <yuya@tcha.org>
parents: 29085
diff changeset
  1129
29624
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1130
on the other hand, parents are formatted as '{rev}:{node|formatnode}' by
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1131
default. join() should agree with the default formatting:
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1132
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1133
  $ hg log -R ../a -T '{join(parents, ", ")}\n' -r6
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1134
  5:13207e5a10d9, 4:bbe44766e73d
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1135
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1136
  $ hg log -R ../a -T '{join(parents, ",\n")}\n' -r6 --debug
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1137
  5:13207e5a10d9fd28ec424934298e176197f2c67f,
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1138
  4:bbe44766e73d5f11ed2177f1838de10c53ef3e74
1a129dd05b7d templatekw: fix join format of parents keyword (issue5292)
Yuya Nishihara <yuya@tcha.org>
parents: 29623
diff changeset
  1139
35561
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1140
Invalid arguments passed to revset()
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1141
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1142
  $ hg log -T '{revset("%whatever", 0)}\n'
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1143
  hg: parse error: unexpected revspec format character w
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1144
  [255]
35591
8f1a7adb3225 revsetlang: catch invalid format character with %l prefix
Yuya Nishihara <yuya@tcha.org>
parents: 35561
diff changeset
  1145
  $ hg log -T '{revset("%lwhatever", files)}\n'
8f1a7adb3225 revsetlang: catch invalid format character with %l prefix
Yuya Nishihara <yuya@tcha.org>
parents: 35561
diff changeset
  1146
  hg: parse error: unexpected revspec format character w
8f1a7adb3225 revsetlang: catch invalid format character with %l prefix
Yuya Nishihara <yuya@tcha.org>
parents: 35561
diff changeset
  1147
  [255]
35592
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1148
  $ hg log -T '{revset("%s %s", 0)}\n'
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1149
  hg: parse error: missing argument for revspec
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1150
  [255]
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1151
  $ hg log -T '{revset("", 0)}\n'
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1152
  hg: parse error: too many revspec arguments specified
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1153
  [255]
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1154
  $ hg log -T '{revset("%s", 0, 1)}\n'
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1155
  hg: parse error: too many revspec arguments specified
0fd617afebc0 revsetlang: check number of arguments passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35591
diff changeset
  1156
  [255]
35593
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1157
  $ hg log -T '{revset("%", 0)}\n'
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1158
  hg: parse error: incomplete revspec format character
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1159
  [255]
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1160
  $ hg log -T '{revset("%l", 0)}\n'
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1161
  hg: parse error: incomplete revspec format character
850cd045b1df revsetlang: check incomplete revspec format character
Yuya Nishihara <yuya@tcha.org>
parents: 35592
diff changeset
  1162
  [255]
35594
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1163
  $ hg log -T '{revset("%d", 'foo')}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1164
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1165
  [255]
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1166
  $ hg log -T '{revset("%ld", files)}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1167
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1168
  [255]
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1169
  $ hg log -T '{revset("%ls", 0)}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1170
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1171
  [255]
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1172
  $ hg log -T '{revset("%b", 'foo')}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1173
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1174
  [255]
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1175
  $ hg log -T '{revset("%lb", files)}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1176
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1177
  [255]
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1178
  $ hg log -T '{revset("%r", 0)}\n'
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1179
  hg: parse error: invalid argument for revspec
468d7a1f6633 revsetlang: catch invalid value passed to formatspec()
Yuya Nishihara <yuya@tcha.org>
parents: 35593
diff changeset
  1180
  [255]
35561
4c3a4bb31c0e revsetlang: raise ParseError to report invalid format character
Yuya Nishihara <yuya@tcha.org>
parents: 35470
diff changeset
  1181
30008
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1182
Test files function
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1183
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1184
  $ hg log -T "{rev}\n{join(files('*'), '\n')}\n"
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1185
  2
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1186
  a
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1187
  aa
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1188
  b
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1189
  1
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1190
  a
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1191
  0
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1192
  a
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1193
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1194
  $ hg log -T "{rev}\n{join(files('aa'), '\n')}\n"
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1195
  2
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1196
  aa
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1197
  1
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1198
  
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1199
  0
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1200
  
38277
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1201
  $ hg rm a
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1202
  $ hg log -r "wdir()" -T "{rev}\n{join(files('*'), '\n')}\n"
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1203
  2147483647
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1204
  aa
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1205
  b
aaed058a0390 context: make workingctx.matches() filter our removed files (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 38271
diff changeset
  1206
  $ hg revert a
30008
e83f89d3b1f7 templates: add built-in files() function
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com>
parents: 29848
diff changeset
  1207
30083
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1208
Test relpath function
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1209
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1210
  $ hg log -r0 -T '{files % "{file|relpath}\n"}'
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1211
  a
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1212
  $ cd ..
bd1f043d1ea3 templater: add relpath() to convert repo path to relative path (issue5394)
Yuya Nishihara <yuya@tcha.org>
parents: 30008
diff changeset
  1213
  $ hg log -R r -r0 -T '{files % "{file|relpath}\n"}'
30732
d4ec69ff652a tests: update globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30237
diff changeset
  1214
  r/a
27894
a94f7eef3199 templatekw: add {namespaces} keyword
Yuya Nishihara <yuya@tcha.org>
parents: 26856
diff changeset
  1215
20662
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1216
Test stringify on sub expressions
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1217
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1218
  $ hg log -R a -r 8 --template '{join(files, if("1", if("1", ", ")))}\n'
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1219
  fourth, second, third
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1220
  $ hg log -R a -r 8 --template '{strip(if("1", if("1", "-abc-")), if("1", if("1", "-")))}\n'
a54c0d830499 templater: apply "stringify()" on sub expression to get string correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20661
diff changeset
  1221
  abc
20670
0084fcd5d7e2 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 20668 20663
diff changeset
  1222
21820
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1223
Test splitlines
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1224
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1225
  $ hg log -Gv -R a --template "{splitlines(desc) % 'foo {line}\n'}"
24985
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1226
  @  foo Modify, add, remove, rename
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1227
  |
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1228
  o  foo future
21820
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1229
  |
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1230
  o  foo third
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1231
  |
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1232
  o  foo second
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1233
  
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1234
  o    foo merge
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1235
  |\
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1236
  | o  foo new head
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1237
  | |
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1238
  o |  foo new branch
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1239
  |/
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1240
  o  foo no user, no domain
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1241
  |
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1242
  o  foo no person
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1243
  |
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1244
  o  foo other 1
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1245
  |  foo other 2
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1246
  |  foo
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1247
  |  foo other 3
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1248
  o  foo line 1
cce404b0c918 templatefilter: add splitlines function
Ryan McElroy <rmcelroy@fb.com>
parents: 21540
diff changeset
  1249
     foo line 2
21821
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1250
32039
2ab7578e685b templatefilters: fix crash by string formatting of '{x|splitlines}'
Yuya Nishihara <yuya@tcha.org>
parents: 31928
diff changeset
  1251
  $ hg log -R a -r0 -T '{desc|splitlines}\n'
2ab7578e685b templatefilters: fix crash by string formatting of '{x|splitlines}'
Yuya Nishihara <yuya@tcha.org>
parents: 31928
diff changeset
  1252
  line 1 line 2
2ab7578e685b templatefilters: fix crash by string formatting of '{x|splitlines}'
Yuya Nishihara <yuya@tcha.org>
parents: 31928
diff changeset
  1253
  $ hg log -R a -r0 -T '{join(desc|splitlines, "|")}\n'
2ab7578e685b templatefilters: fix crash by string formatting of '{x|splitlines}'
Yuya Nishihara <yuya@tcha.org>
parents: 31928
diff changeset
  1254
  line 1|line 2
2ab7578e685b templatefilters: fix crash by string formatting of '{x|splitlines}'
Yuya Nishihara <yuya@tcha.org>
parents: 31928
diff changeset
  1255
21821
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1256
Test startswith
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1257
  $ hg log -Gv -R a --template "{startswith(desc)}"
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1258
  hg: parse error: startswith expects two arguments
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1259
  [255]
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1260
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1261
  $ hg log -Gv -R a --template "{startswith('line', desc)}"
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1262
  @
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1263
  |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1264
  o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1265
  |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1266
  o
24985
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1267
  |
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1268
  o
21821
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1269
  
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1270
  o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1271
  |\
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1272
  | o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1273
  | |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1274
  o |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1275
  |/
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1276
  o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1277
  |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1278
  o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1279
  |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1280
  o
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1281
  |
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1282
  o  line 1
4a445dc5abff templater: introduce startswith function
Ryan McElroy <rmcelroy@fb.com>
parents: 21820
diff changeset
  1283
     line 2
21822
028a48105191 templater: add symbol to error
Ryan McElroy <rmcelroy@fb.com>
parents: 21821
diff changeset
  1284
21846
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1285
Test word function (including index out of bounds graceful failure)
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1286
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1287
  $ hg log -Gv -R a --template "{word('1', desc)}"
24985
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1288
  @  add,
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1289
  |
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1290
  o
21846
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1291
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1292
  o
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1293
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1294
  o
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1295
  
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1296
  o
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1297
  |\
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1298
  | o  head
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1299
  | |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1300
  o |  branch
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1301
  |/
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1302
  o  user,
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1303
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1304
  o  person
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1305
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1306
  o  1
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1307
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1308
  o  1
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1309
  
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1310
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1311
Test word third parameter used as splitter
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1312
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1313
  $ hg log -Gv -R a --template "{word('0', desc, 'o')}"
24985
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1314
  @  M
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1315
  |
20bff5d09018 tests: add a new commit to test-commandline-template
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24966
diff changeset
  1316
  o  future
21846
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1317
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1318
  o  third
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1319
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1320
  o  sec
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1321
  
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1322
  o    merge
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1323
  |\
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1324
  | o  new head
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1325
  | |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1326
  o |  new branch
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1327
  |/
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1328
  o  n
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1329
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1330
  o  n
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1331
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1332
  o
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1333
  |
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1334
  o  line 1
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1335
     line 2
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1336
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1337
Test word error messages for not enough and too many arguments
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1338
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1339
  $ hg log -Gv -R a --template "{word('0')}"
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1340
  hg: parse error: word expects two or three arguments, got 1
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1341
  [255]
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1342
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1343
  $ hg log -Gv -R a --template "{word('0', desc, 'o', 'h', 'b', 'o', 'y')}"
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1344
  hg: parse error: word expects two or three arguments, got 7
8f23f8096606 templater: introduce word function
Ryan McElroy <rmcelroy@fb.com>
parents: 21822
diff changeset
  1345
  [255]
24886
10a13da8840d templater: fail more gracefully for blank strings to word
Ryan McElroy <rmcelroy@fb.com>
parents: 24853
diff changeset
  1346
25002
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1347
Test word for integer literal
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1348
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1349
  $ hg log -R a --template "{word(2, desc)}\n" -r0
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1350
  line
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1351
24886
10a13da8840d templater: fail more gracefully for blank strings to word
Ryan McElroy <rmcelroy@fb.com>
parents: 24853
diff changeset
  1352
Test word for invalid numbers
10a13da8840d templater: fail more gracefully for blank strings to word
Ryan McElroy <rmcelroy@fb.com>
parents: 24853
diff changeset
  1353
25002
829faf8ab605 templater: tokenize decimal integer literal (issue4638) (BC)
Yuya Nishihara <yuya@tcha.org>
parents: 24985
diff changeset
  1354
  $ hg log -Gv -R a --template "{word('a', desc)}"
25003
5e584edbb211 templater: update error message of invalid number passed to word() function
Yuya Nishihara <yuya@tcha.org>
parents: 25002
diff changeset
  1355
  hg: parse error: word expects an integer index
24886
10a13da8840d templater: fail more gracefully for blank strings to word
Ryan McElroy <rmcelroy@fb.com>
parents: 24853
diff changeset
  1356
  [255]
25489
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1357
26502
4ca98a389152 templater: protect word() from crashing on out of range negative value
Matt Harbison <matt_harbison@yahoo.com>
parents: 25862
diff changeset
  1358
Test word for out of range
4ca98a389152 templater: protect word() from crashing on out of range negative value
Matt Harbison <matt_harbison@yahoo.com>
parents: 25862
diff changeset
  1359
4ca98a389152 templater: protect word() from crashing on out of range negative value
Matt Harbison <matt_harbison@yahoo.com>
parents: 25862
diff changeset
  1360
  $ hg log -R a --template "{word(10000, desc)}"
4ca98a389152 templater: protect word() from crashing on out of range negative value
Matt Harbison <matt_harbison@yahoo.com>
parents: 25862
diff changeset
  1361
  $ hg log -R a --template "{word(-10000, desc)}"
4ca98a389152 templater: protect word() from crashing on out of range negative value
Matt Harbison <matt_harbison@yahoo.com>
parents: 25862
diff changeset
  1362
25489
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1363
Test indent and not adding to empty lines
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1364
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1365
  $ hg log -T "-----\n{indent(desc, '>> ', ' > ')}\n" -r 0:1 -R a
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1366
  -----
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1367
   > line 1
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1368
  >> line 2
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1369
  -----
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1370
   > other 1
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1371
  >> other 2
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1372
  
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1373
  >> other 3
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1374
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1375
Test with non-strings like dates
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1376
ef8956aa8755 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com>
parents: 25349
diff changeset
  1377
  $ hg log -T "{indent(date, '   ')}\n" -r 2:3 -R a
38299
88e7105b5cd9 templater: restore the original string format of {date}
Yuya Nishihara <yuya@tcha.org>
parents: 38289
diff changeset
  1378
     1200000.00
88e7105b5cd9 templater: restore the original string format of {date}
Yuya Nishihara <yuya@tcha.org>
parents: 38289
diff changeset
  1379
     1300000.00
26215
72aad184f061 templater: create string unescape helper (issue4798)
Matt Mackall <mpm@selenic.com>
parents: 26188
diff changeset
  1380
28212
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1381
json filter should escape HTML tags so that the output can be embedded in hgweb:
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1382
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1383
  $ hg log -T "{'<foo@example.org>'|json}\n" -R a -l1
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1384
  "\u003cfoo@example.org\u003e"
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1385
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1386
Set up repository for non-ascii encoding tests:
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1387
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1388
  $ hg init nonascii
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1389
  $ cd nonascii
33262
8e6f4939a69a tests: replace yet more calls to `python` with $PYTHON
Augie Fackler <augie@google.com>
parents: 33048
diff changeset
  1390
  $ $PYTHON <<EOF
36504
b075f45456a5 py3: fix test-command-template.t to write files in binary mode
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
  1391
  > open('latin1', 'wb').write(b'\xe9')
b075f45456a5 py3: fix test-command-template.t to write files in binary mode
Yuya Nishihara <yuya@tcha.org>
parents: 36445
diff changeset
  1392
  > open('utf-8', 'wb').write(b'\xc3\xa9')
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1393
  > EOF
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1394
  $ HGENCODING=utf-8 hg branch -q `cat utf-8`
28239
7279e0132347 templatekw: workaround for utf-8 round-trip of {desc}
Yuya Nishihara <yuya@tcha.org>
parents: 28212
diff changeset
  1395
  $ HGENCODING=utf-8 hg ci -qAm "non-ascii branch: `cat utf-8`" utf-8
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1396
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1397
json filter should try round-trip conversion to utf-8:
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1398
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1399
  $ HGENCODING=ascii hg log -T "{branch|json}\n" -r0
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1400
  "\u00e9"
28239
7279e0132347 templatekw: workaround for utf-8 round-trip of {desc}
Yuya Nishihara <yuya@tcha.org>
parents: 28212
diff changeset
  1401
  $ HGENCODING=ascii hg log -T "{desc|json}\n" -r0
7279e0132347 templatekw: workaround for utf-8 round-trip of {desc}
Yuya Nishihara <yuya@tcha.org>
parents: 28212
diff changeset
  1402
  "non-ascii branch: \u00e9"
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1403
37947
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1404
json filter should take input as utf-8 if it was converted from utf-8:
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1405
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1406
  $ HGENCODING=latin-1 hg log -T "{branch|json}\n" -r0
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1407
  "\u00e9"
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1408
  $ HGENCODING=latin-1 hg log -T "{desc|json}\n" -r0
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1409
  "non-ascii branch: \u00e9"
3ea3c96ada54 encoding: introduce tagging type for non-lossy non-ASCII string
Yuya Nishihara <yuya@tcha.org>
parents: 37859
diff changeset
  1410
28212
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1411
json filter takes input as utf-8b:
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1412
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1413
  $ HGENCODING=ascii hg log -T "{'`cat utf-8`'|json}\n" -l1
28212
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1414
  "\u00e9"
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1415
  $ HGENCODING=ascii hg log -T "{'`cat latin1`'|json}\n" -l1
d4419c01532b templatefilters: make json filter be byte-transparent (BC) (issue4926)
Yuya Nishihara <yuya@tcha.org>
parents: 28209
diff changeset
  1416
  "\udce9"
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1417
28209
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1418
utf8 filter:
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1419
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1420
  $ HGENCODING=ascii hg log -T "round-trip: {branch|utf8|hex}\n" -r0
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1421
  round-trip: c3a9
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1422
  $ HGENCODING=latin1 hg log -T "decoded: {'`cat latin1`'|utf8|hex}\n" -l1
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1423
  decoded: c3a9
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1424
  $ HGENCODING=ascii hg log -T "replaced: {'`cat latin1`'|utf8|hex}\n" -l1
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1425
  abort: decoding near * (glob)
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1426
  [255]
37223
08e042f0a67c templatefilters: declare input type as bytes where appropriate
Yuya Nishihara <yuya@tcha.org>
parents: 37105
diff changeset
  1427
  $ hg log -T "coerced to string: {rev|utf8}\n" -r0
08e042f0a67c templatefilters: declare input type as bytes where appropriate
Yuya Nishihara <yuya@tcha.org>
parents: 37105
diff changeset
  1428
  coerced to string: 0
28209
8ddf893560fa templatefilters: add "utf8" to get utf-8 bytes from local-encoding text
Yuya Nishihara <yuya@tcha.org>
parents: 28177
diff changeset
  1429
31520
6f150bb19317 templater: make pad() compute actual width
Yuya Nishihara <yuya@tcha.org>
parents: 31519
diff changeset
  1430
pad width:
6f150bb19317 templater: make pad() compute actual width
Yuya Nishihara <yuya@tcha.org>
parents: 31519
diff changeset
  1431
6f150bb19317 templater: make pad() compute actual width
Yuya Nishihara <yuya@tcha.org>
parents: 31519
diff changeset
  1432
  $ HGENCODING=utf-8 hg debugtemplate "{pad('`cat utf-8`', 2, '-')}\n"
6f150bb19317 templater: make pad() compute actual width
Yuya Nishihara <yuya@tcha.org>
parents: 31519
diff changeset
  1433
  \xc3\xa9- (esc)
6f150bb19317 templater: make pad() compute actual width
Yuya Nishihara <yuya@tcha.org>
parents: 31519
diff changeset
  1434
26856
baa77652be68 templatefilters: try round-trip utf-8 conversion by json filter (issue4933)
Yuya Nishihara <yuya@tcha.org>
parents: 26504
diff changeset
  1435
  $ cd ..