view tests/test-issue4074.t @ 30449:a31634336471

drawdag: update test repos by drawing the changelog DAG in ASCII Currently, we have "debugbuilddag" which is a powerful tool to build test cases but not intuitive. We may end up running "hg log" in the test to make the test more readable. This patch adds a "drawdag" extension with a "debugdrawdag" command for similar testing purpose. Unlike the cryptic "debugbuilddag" command, it reads an ASCII graph that is intuitive to human, so the test case can be more readable. Unlike "debugbuilddag", "drawdag" does not require an empty repo. So it can be used to add new changesets to an existing repo. Since the "drawdag" logic is not that trivial and only makes sense for testing purpose, the extension is added to the "tests" directory, to make the core logic clean. If we find it useful (for example, to demonstrate cases and help user understand some cases) and want to ship it by default in the future, we can move it to a ship-by-default "debugdrawdag" at that time.
author Jun Wu <quark@fb.com>
date Wed, 09 Nov 2016 16:01:34 +0000
parents f1ca249696ed
children 75be14993fda
line wrap: on
line source

#require no-pure

A script to generate nasty diff worst-case scenarios:

  $ cat > s.py <<EOF
  > import random
  > for x in xrange(100000):
  >     print
  >     if random.randint(0, 100) >= 50:
  >         x += 1
  >     print hex(x)
  > EOF

  $ hg init a
  $ cd a

Check in a big file:

  $ python ../s.py > a
  $ hg ci -qAm0

Modify it:

  $ python ../s.py > a

Time a check-in, should never take more than 10 seconds user time:

  $ hg ci --time -m1
  time: real .* secs .user [0-9][.].* sys .* (re)