1 $ cat >> $HGRCPATH << EOF 2 > [extensions] 3 > show = 4 > EOF 5 6 $ hg init repo0 7 $ cd repo0 8 9Command works on an empty repo 10 11 $ hg show work 12 13Single draft changeset shown 14 15 $ echo 0 > foo 16 $ hg -q commit -A -m 'commit 0' 17 18 $ hg show work 19 @ 9f17 commit 0 20 21Even when it isn't the wdir 22 23 $ hg -q up null 24 25 $ hg show work 26 o 9f17 commit 0 27 28Single changeset is still there when public because it is a head 29 30 $ hg phase --public -r 0 31 $ hg show work 32 o 9f17 commit 0 33 34A draft child will show both it and public parent 35 36 $ hg -q up 0 37 $ echo 1 > foo 38 $ hg commit -m 'commit 1' 39 40 $ hg show work 41 @ 181c commit 1 42 o 9f17 commit 0 43 44Multiple draft children will be shown 45 46 $ echo 2 > foo 47 $ hg commit -m 'commit 2' 48 49 $ hg show work 50 @ 128c commit 2 51 o 181c commit 1 52 o 9f17 commit 0 53 54Bumping first draft changeset to public will hide its parent 55 56 $ hg phase --public -r 1 57 $ hg show work 58 @ 128c commit 2 59 o 181c commit 1 60 ~ 61 62Multiple DAG heads will be shown 63 64 $ hg -q up -r 1 65 $ echo 3 > foo 66 $ hg commit -m 'commit 3' 67 created new head 68 69 $ hg show work 70 @ f0ab commit 3 71 | o 128c commit 2 72 |/ 73 o 181c commit 1 74 ~ 75 76Even when wdir is something else 77 78 $ hg -q up null 79 80 $ hg show work 81 o f0ab commit 3 82 | o 128c commit 2 83 |/ 84 o 181c commit 1 85 ~ 86 87Draft child shows public head (multiple heads) 88 89 $ hg -q up 0 90 $ echo 4 > foo 91 $ hg commit -m 'commit 4' 92 created new head 93 94 $ hg show work 95 @ 668c commit 4 96 | o f0ab commit 3 97 | | o 128c commit 2 98 | |/ 99 | o 181c commit 1 100 |/ 101 o 9f17 commit 0 102 103 $ cd .. 104 105Branch name appears in output 106 107 $ hg init branches 108 $ cd branches 109 $ echo 0 > foo 110 $ hg -q commit -A -m 'commit 0' 111 $ echo 1 > foo 112 $ hg commit -m 'commit 1' 113 $ echo 2 > foo 114 $ hg commit -m 'commit 2' 115 $ hg phase --public -r . 116 $ hg -q up -r 1 117 $ hg branch mybranch 118 marked working directory as branch mybranch 119 (branches are permanent and global, did you want a bookmark?) 120 $ echo 3 > foo 121 $ hg commit -m 'commit 3' 122 $ echo 4 > foo 123 $ hg commit -m 'commit 4' 124 125 $ hg show work 126 @ f8dd (mybranch) commit 4 127 o 90cf (mybranch) commit 3 128 | o 128c commit 2 129 |/ 130 o 181c commit 1 131 ~ 132 133 $ cd .. 134 135Bookmark name appears in output 136 137 $ hg init bookmarks 138 $ cd bookmarks 139 $ echo 0 > foo 140 $ hg -q commit -A -m 'commit 0' 141 $ echo 1 > foo 142 $ hg commit -m 'commit 1' 143 $ echo 2 > foo 144 $ hg commit -m 'commit 2' 145 $ hg phase --public -r . 146 $ hg bookmark @ 147 $ hg -q up -r 1 148 $ echo 3 > foo 149 $ hg commit -m 'commit 3' 150 created new head 151 $ echo 4 > foo 152 $ hg commit -m 'commit 4' 153 $ hg bookmark mybook 154 155 $ hg show work 156 @ cac8 (mybook) commit 4 157 o f0ab commit 3 158 | o 128c (@) commit 2 159 |/ 160 o 181c commit 1 161 ~ 162 163 $ cd .. 164 165Tags are rendered 166 167 $ hg init tags 168 $ cd tags 169 $ echo 0 > foo 170 $ hg -q commit -A -m 'commit 1' 171 $ echo 1 > foo 172 $ hg commit -m 'commit 2' 173 $ hg tag 0.1 174 $ hg phase --public -r . 175 $ echo 2 > foo 176 $ hg commit -m 'commit 3' 177 $ hg tag 0.2 178 179 $ hg show work 180 @ 3758 Added tag 0.2 for changeset 6379c25b76f1 181 o 6379 (0.2) commit 3 182 o a2ad Added tag 0.1 for changeset 6a75536ea0b1 183 ~ 184 185 $ cd .. 186 187Multiple names on same changeset render properly 188 189 $ hg init multiplenames 190 $ cd multiplenames 191 $ echo 0 > foo 192 $ hg -q commit -A -m 'commit 1' 193 $ hg phase --public -r . 194 $ hg branch mybranch 195 marked working directory as branch mybranch 196 (branches are permanent and global, did you want a bookmark?) 197 $ hg bookmark mybook 198 $ echo 1 > foo 199 $ hg commit -m 'commit 2' 200 201 $ hg show work 202 @ 3483 (mybook) (mybranch) commit 2 203 o 97fc commit 1 204 205Multiple bookmarks on same changeset render properly 206 207 $ hg book mybook2 208 $ hg show work 209 @ 3483 (mybook mybook2) (mybranch) commit 2 210 o 97fc commit 1 211 212 $ cd .. 213 214Extra namespaces are rendered 215 216 $ hg init extranamespaces 217 $ cd extranamespaces 218 $ echo 0 > foo 219 $ hg -q commit -A -m 'commit 1' 220 $ hg phase --public -r . 221 $ echo 1 > foo 222 $ hg commit -m 'commit 2' 223 $ echo 2 > foo 224 $ hg commit -m 'commit 3' 225 226 $ hg --config extensions.revnames=$TESTDIR/revnamesext.py show work 227 @ 32f3 (r2) commit 3 228 o 6a75 (r1) commit 2 229 o 97fc (r0) commit 1 230 231Obsolescence information appears in labels. 232 233 $ cat >> .hg/hgrc << EOF 234 > [experimental] 235 > evolution=createmarkers 236 > EOF 237 $ hg debugobsolete `hg log -r 'desc("commit 2")' -T "{node}"` 238 1 new obsolescence markers 239 obsoleted 1 changesets 240 1 new orphan changesets 241 $ hg show work --color=debug 242 @ [log.changeset changeset.draft changeset.unstable instability.orphan|32f3] [log.description|commit 3] 243 x [log.changeset changeset.draft changeset.obsolete|6a75] [log.description|commit 2] 244 ~ 245 246 $ cd .. 247 248Prefix collision on hashes increases shortest node length 249 250 $ hg init hashcollision 251 $ cd hashcollision 252 $ echo 0 > a 253 $ hg -q commit -Am 0 254 $ for i in 17 1057 2857 4025; do 255 > hg -q up 0 256 > echo $i > a 257 > hg -q commit -m $i 258 > echo 0 > a 259 > hg commit -m "$i commit 2" 260 > done 261 262 $ hg show work 263 @ cfd04 4025 commit 2 264 o c562d 4025 265 | o 08048 2857 commit 2 266 | o c5623 2857 267 |/ 268 | o 6a6b6 1057 commit 2 269 | o c5625 1057 270 |/ 271 | o 96b4e 17 commit 2 272 | o 11424 17 273 |/ 274 o b4e73 0 275 276 $ cd .. 277