tests/test-drawdag.t
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Tue, 02 Jul 2019 12:59:58 -0400
changeset 42621 99ebde4fec99
parent 35709 1a09dad8b85a
permissions -rw-r--r--
commit: improve the files field of changelog for merges Currently, the files list of merge commits repeats all the deletions (either actual deletions, or files that got renamed) that happened between base and p2 of the merge. If p2 is the main branch, the list can easily be much bigger than the change being merged. This results in various problems worth improving: - changelog is bigger than necessary - `hg log directory` lists many unrelated merge commits, and `hg log -v -r commit` frequently fills multiple screens worth of files - it possibly slows down adjustlinkrev, by forcing it to read more manifests, and that function can certainly be a bottleneck - the server side of pulls can waste a lot of time simply opening the filelogs for pointless files (the constant factors for opening even a tiny filelog is apparently pretty bad) So stop listing such files as described in the code. Impacted merge commits and their descendants get a different hash than they would have without this. This doesn't seem problematic, except for convert. The previous commit helped with that in the hg->hg case (but if you do svn->hg twice from scratch, hashes can still change). The rest of the description is numbers. I don't have much to report, because recreating the files list of existing repositories is not easy: - debugupgradeformat and bundle/unbundle don't recreate the list - export/import tends to choke quickly applying patches or on description that contain diffs, - merge commits from the convert extension don't have the right files list for reasons orthogonal to the current commit - replaying the merge with hg update/hg merge/hg revert --all/hg commit can end up failing in hg revert - I wasn't sure that using debugsetparents + debugrebuilddirstate would really build the right thing I measured commit time before and after this change, in a case with no files filtered out, several files filtered out (no difference) and 5k files filtered out (+1% time). Recreating the 100 more recent merges in a private repo, the concatenated uncompressed files lists goes from 1.12MB to 0.52MB. Excluding 3 merges that are not representative, then the size goes from 570k to 15k. I converted part of mozilla-central, and observed file list shrinking quite a bit too, starting at the very first merge, 733641d9feaf, going from 550 files to 10 files (although they have relatively few merges, so they probably wouldn't care). Differential Revision: https://phab.mercurial-scm.org/D6613
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33152
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     1
  $ cat >> $HGRCPATH<<EOF
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     2
  > [extensions]
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     3
  > drawdag=$TESTDIR/drawdag.py
33153
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
     4
  > [experimental]
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34286
diff changeset
     5
  > evolution=true
33152
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     6
  > EOF
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     7
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     8
  $ reinit () {
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
     9
  >   rm -rf .hg && hg init
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    10
  > }
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    11
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    12
  $ hg init
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    13
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    14
Test what said in drawdag.py docstring
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    15
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    16
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    17
  > c d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    18
  > |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    19
  > b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    20
  > |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    21
  > a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    22
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    23
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    24
  $ hg log -G -T '{rev} {desc} ({tags})'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    25
  o  3 d (d tip)
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    26
  |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    27
  | o  2 c (c)
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    28
  |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    29
  o  1 b (b)
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    30
  |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    31
  o  0 a (a)
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    32
  
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    33
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    34
  >  foo    bar       bar  foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    35
  >   |     /          |    |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    36
  >  ancestor(c,d)     a   baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    37
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    38
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    39
  $ hg log -G -T '{desc}'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    40
  o    foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    41
  |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    42
  +---o  bar
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    43
  | | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    44
  | o |  baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    45
  |  /
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    46
  +---o  d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    47
  | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    48
  +---o  c
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    49
  | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    50
  o |  b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    51
  |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    52
  o  a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    53
  
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    54
  $ reinit
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    55
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    56
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    57
  > o    foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    58
  > |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    59
  > +---o  bar
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    60
  > | | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    61
  > | o |  baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    62
  > |  /
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    63
  > +---o  d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    64
  > | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    65
  > +---o  c
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    66
  > | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    67
  > o |  b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    68
  > |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    69
  > o  a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    70
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    71
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    72
  $ hg log -G -T '{desc}'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    73
  o    foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    74
  |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    75
  | | o  d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    76
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    77
  | | o  c
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    78
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    79
  | | o  bar
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    80
  | |/|
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    81
  | o |  b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    82
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    83
  o /  baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    84
   /
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    85
  o  a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    86
  
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    87
  $ reinit
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    88
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    89
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    90
  > o    foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    91
  > |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    92
  > | | o  d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    93
  > | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    94
  > | | o  c
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    95
  > | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    96
  > | | o  bar
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    97
  > | |/|
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    98
  > | o |  b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
    99
  > | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   100
  > o /  baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   101
  >  /
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   102
  > o  a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   103
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   104
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   105
  $ hg log -G -T '{desc}'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   106
  o    foo
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   107
  |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   108
  | | o  d
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   109
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   110
  | | o  c
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   111
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   112
  | | o  bar
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   113
  | |/|
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   114
  | o |  b
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   115
  | |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   116
  o /  baz
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   117
   /
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   118
  o  a
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   119
  
33558
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   120
  $ hg manifest -r a
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   121
  a
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   122
  $ hg manifest -r b
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   123
  a
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   124
  b
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   125
  $ hg manifest -r bar
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   126
  a
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   127
  b
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   128
  $ hg manifest -r foo
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   129
  a
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   130
  b
0103e7187237 drawdag: include files from both parents in merge commits
Martin von Zweigbergk <martinvonz@google.com>
parents: 33153
diff changeset
   131
  baz
33152
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   132
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   133
Edges existed in repo are no-ops
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   134
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   135
  $ reinit
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   136
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   137
  > B C C
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   138
  > | | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   139
  > A A B
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   140
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   141
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   142
  $ hg log -G -T '{desc}'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   143
  o    C
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   144
  |\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   145
  | o  B
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   146
  |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   147
  o  A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   148
  
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   149
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   150
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   151
  > C D C
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   152
  > | | |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   153
  > B B A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   154
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   155
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   156
  $ hg log -G -T '{desc}'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   157
  o  D
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   158
  |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   159
  | o  C
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   160
  |/|
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   161
  o |  B
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   162
  |/
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   163
  o  A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   164
  
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   165
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   166
Node with more than 2 parents are disallowed
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   167
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   168
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   169
  >   A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   170
  >  /|\
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   171
  > D B C
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   172
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   173
  abort: A: too many parents: C D B
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   174
  [255]
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   175
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   176
Cycles are disallowed
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   177
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   178
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   179
  > A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   180
  > |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   181
  > A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   182
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   183
  abort: the graph has cycles
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   184
  [255]
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   185
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   186
  $ hg debugdrawdag <<'EOS'
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   187
  > A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   188
  > |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   189
  > B
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   190
  > |
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   191
  > A
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   192
  > EOS
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   193
  abort: the graph has cycles
367a3c6473d2 test-drawdag: add a test for drawdag.py
Jun Wu <quark@fb.com>
parents:
diff changeset
   194
  [255]
33153
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   195
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   196
Create obsmarkers via comments
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   197
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   198
  $ reinit
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   199
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   200
  $ hg debugdrawdag <<'EOS'
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   201
  >       G
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   202
  >       |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   203
  > I D C F   # split: B -> E, F, G
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   204
  >  \ \| |   # replace: C -> D -> H
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   205
  >   H B E   # prune: F, I
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   206
  >    \|/
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   207
  >     A
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   208
  > EOS
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35508
diff changeset
   209
  1 new orphan changesets
33153
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   210
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   211
  $ hg log -r 'sort(all(), topo)' -G --hidden -T '{desc} {node}'
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   212
  *  G 711f53bbef0bebd12eb6f0511d5e2e998b984846
33153
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   213
  |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   214
  x  F 64a8289d249234b9886244d379f15e6b650b28e3
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   215
  |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   216
  o  E 7fb047a69f220c21711122dfd94305a9efb60cba
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   217
  |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   218
  | x  D be0ef73c17ade3fc89dc41701eb9fc3a91b58282
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   219
  | |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   220
  | | x  C 26805aba1e600a82e93661149f2313866a221a7b
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   221
  | |/
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   222
  | x  B 112478962961147124edd43549aedd1a335e44bf
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   223
  |/
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   224
  | x  I 58e6b987bf7045fcd9c54f496396ca1d1fc81047
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   225
  | |
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   226
  | o  H 575c4b5ec114d64b681d33f8792853568bfb2b2c
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   227
  |/
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   228
  o  A 426bada5c67598ca65036d57d9e4b64b0c1ce7a0
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   229
  
4d780d510b44 drawdag: support obsmarker creation in comments
Jun Wu <quark@fb.com>
parents: 33152
diff changeset
   230
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
   231
  112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'split', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
   232
  26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
   233
  be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
   234
  64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
   235
  58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
33788
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   236
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   237
Change file contents via comments
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   238
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   239
  $ reinit
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   240
  $ hg debugdrawdag <<'EOS'
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   241
  > C       # A/dir1/a = 1\n2
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   242
  > |\      # B/dir2/b = 34
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   243
  > A B     # C/dir1/c = 5
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   244
  >         # C/dir2/c = 6
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   245
  >         # C/A = a
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   246
  >         # C/B = b
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   247
  > EOS
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   248
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   249
  $ hg log -G -T '{desc} {files}'
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   250
  o    C A B dir1/c dir2/c
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   251
  |\
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   252
  | o  B B dir2/b
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   253
  |
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   254
  o  A A dir1/a
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   255
  
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   256
  $ for f in `hg files -r C`; do
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   257
  >   echo FILE "$f"
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   258
  >   hg cat -r C "$f"
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   259
  >   echo
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   260
  > done
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   261
  FILE A
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   262
  a
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   263
  FILE B
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   264
  b
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34961
diff changeset
   265
  FILE dir1/a
33788
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   266
  1
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   267
  2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34961
diff changeset
   268
  FILE dir1/c
33788
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   269
  5
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34961
diff changeset
   270
  FILE dir2/b
33788
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   271
  34
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34961
diff changeset
   272
  FILE dir2/c
33788
0531ffd59a98 drawdag: allow override file contents via comments
Jun Wu <quark@fb.com>
parents: 33773
diff changeset
   273
  6