tests/test-show-work.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 13 Sep 2017 21:15:46 -0700
changeset 34191 e6b5e7329ff2
parent 33050 0a507da7d8ea
child 34877 eb24f1d1b50b
permissions -rw-r--r--
show: use consistent (and possibly shorter) node lengths `hg show` makes heavy use of shortest() to limit the length of the node hash. For the "stack" and "work" views, you are often looking at multiple lines of similar output for "lines" of work. It is visually appeasing for things to vertically align. A naive use of {shortest(node, N)} could result in variable length nodes and for the first character of the description to vary by a column or two. We implement a function to determine the longest shortest prefix for a set of revisions. The new function is used to determine the printed node length for all `hg show` views. .. feature:: show: use consistent node length in views Our previous shortest node length of 5 was arbitrarily chosen. shortest() already does the work of ensuring that a partial node isn't ambiguous with an integer revision, which is our primary risk of a collision for very short nodes. It should be safe to go with the shortest node possible. Existing code is also optimized to handle nodes as short as 4. So, we decrease the minimum hash length from 5 to 4. We also add a test demonstrating that prefix collisions increase the node length. .. feature:: show: decrease minimum displayed hash length from 5 to 4 Differential Revision: https://phab.mercurial-scm.org/D558
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
  $ cat >> $HGRCPATH << EOF
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
  > [extensions]
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
  > show =
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
  > EOF
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
  $ hg init repo0
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
  $ cd repo0
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     9
Command works on an empty repo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    10
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    11
  $ hg show work
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
Single draft changeset shown
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    14
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    15
  $ echo 0 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    16
  $ hg -q commit -A -m 'commit 0'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    17
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    18
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    19
  @  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
Even when it isn't the wdir
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    22
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    23
  $ hg -q up null
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    24
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    25
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    26
  o  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    27
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    28
Single changeset is still there when public because it is a head
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    29
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    30
  $ hg phase --public -r 0
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    31
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    32
  o  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    33
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
A draft child will show both it and public parent
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    35
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    36
  $ hg -q up 0
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    37
  $ echo 1 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    38
  $ hg commit -m 'commit 1'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    39
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    40
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    41
  @  181c commit 1
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    42
  o  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
Multiple draft children will be shown
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    45
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
  $ echo 2 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    47
  $ hg commit -m 'commit 2'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    49
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    50
  @  128c commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    51
  o  181c commit 1
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    52
  o  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    53
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    54
Bumping first draft changeset to public will hide its parent
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    55
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    56
  $ hg phase --public -r 1
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    57
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    58
  @  128c commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    59
  o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    60
  |
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    61
  ~
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    62
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    63
Multiple DAG heads will be shown
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    64
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    65
  $ hg -q up -r 1
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    66
  $ echo 3 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    67
  $ hg commit -m 'commit 3'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    68
  created new head
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    69
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    70
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    71
  @  f0ab commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    72
  | o  128c commit 2
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    73
  |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    74
  o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    75
  |
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    76
  ~
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    77
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    78
Even when wdir is something else
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    79
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    80
  $ hg -q up null
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    81
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    82
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    83
  o  f0ab commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    84
  | o  128c commit 2
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    85
  |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    86
  o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    87
  |
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    88
  ~
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    89
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    90
Draft child shows public head (multiple heads)
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    91
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    92
  $ hg -q up 0
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    93
  $ echo 4 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    94
  $ hg commit -m 'commit 4'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    95
  created new head
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    96
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
    97
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    98
  @  668c commit 4
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
    99
  | o  f0ab commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   100
  | | o  128c commit 2
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   101
  | |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   102
  | o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   103
  |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   104
  o  9f17 commit 0
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   105
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   106
  $ cd ..
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   107
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   108
Branch name appears in output
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   109
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   110
  $ hg init branches
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   111
  $ cd branches
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   112
  $ echo 0 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   113
  $ hg -q commit -A -m 'commit 0'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   114
  $ echo 1 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   115
  $ hg commit -m 'commit 1'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   116
  $ echo 2 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   117
  $ hg commit -m 'commit 2'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   118
  $ hg phase --public -r .
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   119
  $ hg -q up -r 1
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   120
  $ hg branch mybranch
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   121
  marked working directory as branch mybranch
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   122
  (branches are permanent and global, did you want a bookmark?)
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   123
  $ echo 3 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   124
  $ hg commit -m 'commit 3'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   125
  $ echo 4 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   126
  $ hg commit -m 'commit 4'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   127
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
   128
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   129
  @  f8dd (mybranch) commit 4
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   130
  o  90cf (mybranch) commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   131
  | o  128c commit 2
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   132
  |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   133
  o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   134
  |
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   135
  ~
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   136
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   137
  $ cd ..
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   138
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   139
Bookmark name appears in output
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   140
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   141
  $ hg init bookmarks
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   142
  $ cd bookmarks
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   143
  $ echo 0 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   144
  $ hg -q commit -A -m 'commit 0'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   145
  $ echo 1 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   146
  $ hg commit -m 'commit 1'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   147
  $ echo 2 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   148
  $ hg commit -m 'commit 2'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   149
  $ hg phase --public -r .
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   150
  $ hg bookmark @
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   151
  $ hg -q up -r 1
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   152
  $ echo 3 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   153
  $ hg commit -m 'commit 3'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   154
  created new head
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   155
  $ echo 4 > foo
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   156
  $ hg commit -m 'commit 4'
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   157
  $ hg bookmark mybook
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   158
32058
0bb157bebb43 show: rename "underway" to "work"
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31944
diff changeset
   159
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   160
  @  cac8 (mybook) commit 4
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   161
  o  f0ab commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   162
  | o  128c (@) commit 2
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   163
  |/
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   164
  o  181c commit 1
31944
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   165
  |
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   166
  ~
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   167
99bc93147d87 show: implement underway view
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   168
  $ cd ..
33049
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   169
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   170
Tags are rendered
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   171
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   172
  $ hg init tags
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   173
  $ cd tags
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   174
  $ echo 0 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   175
  $ hg -q commit -A -m 'commit 1'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   176
  $ echo 1 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   177
  $ hg commit -m 'commit 2'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   178
  $ hg tag 0.1
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   179
  $ hg phase --public -r .
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   180
  $ echo 2 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   181
  $ hg commit -m 'commit 3'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   182
  $ hg tag 0.2
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   183
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   184
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   185
  @  3758 Added tag 0.2 for changeset 6379c25b76f1
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   186
  o  6379 (0.2) commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   187
  o  a2ad Added tag 0.1 for changeset 6a75536ea0b1
33049
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   188
  |
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   189
  ~
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   190
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   191
  $ cd ..
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   192
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   193
Multiple names on same changeset render properly
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   194
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   195
  $ hg init multiplenames
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   196
  $ cd multiplenames
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   197
  $ echo 0 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   198
  $ hg -q commit -A -m 'commit 1'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   199
  $ hg phase --public -r .
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   200
  $ hg branch mybranch
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   201
  marked working directory as branch mybranch
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   202
  (branches are permanent and global, did you want a bookmark?)
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   203
  $ hg bookmark mybook
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   204
  $ echo 1 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   205
  $ hg commit -m 'commit 2'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   206
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   207
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   208
  @  3483 (mybook) (mybranch) commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   209
  o  97fc commit 1
33049
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   210
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   211
Multiple bookmarks on same changeset render properly
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   212
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   213
  $ hg book mybook2
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   214
  $ hg show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   215
  @  3483 (mybook mybook2) (mybranch) commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   216
  o  97fc commit 1
33049
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   217
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   218
  $ cd ..
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   219
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   220
Extra namespaces are rendered
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   221
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   222
  $ hg init extranamespaces
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   223
  $ cd extranamespaces
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   224
  $ echo 0 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   225
  $ hg -q commit -A -m 'commit 1'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   226
  $ hg phase --public -r .
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   227
  $ echo 1 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   228
  $ hg commit -m 'commit 2'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   229
  $ echo 2 > foo
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   230
  $ hg commit -m 'commit 3'
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   231
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   232
  $ hg --config extensions.revnames=$TESTDIR/revnamesext.py show work
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   233
  @  32f3 (r2) commit 3
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   234
  o  6a75 (r1) commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   235
  o  97fc (r0) commit 1
33049
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   236
0b42c7ba46a6 tests: add more tests for names rendering in `hg show work`
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32058
diff changeset
   237
  $ cd ..
34191
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   238
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   239
Prefix collision on hashes increases shortest node length
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   240
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   241
  $ hg init hashcollision
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   242
  $ cd hashcollision
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   243
  $ echo 0 > a
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   244
  $ hg -q commit -Am 0
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   245
  $ for i in 17 1057 2857 4025; do
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   246
  >   hg -q up 0
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   247
  >   echo $i > a
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   248
  >   hg -q commit -m $i
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   249
  >   echo 0 > a
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   250
  >   hg commit -m "$i commit 2"
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   251
  > done
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   252
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   253
  $ hg show work
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   254
  @  cfd04 4025 commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   255
  o  c562d 4025
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   256
  | o  08048 2857 commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   257
  | o  c5623 2857
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   258
  |/
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   259
  | o  6a6b6 1057 commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   260
  | o  c5625 1057
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   261
  |/
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   262
  | o  96b4e 17 commit 2
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   263
  | o  11424 17
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   264
  |/
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   265
  o  b4e73 0
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   266
e6b5e7329ff2 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33050
diff changeset
   267
  $ cd ..