tests/test-debugindexdot.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 25 Mar 2024 01:50:31 +0100
branchstable
changeset 51516 e0f92bd98c24
parent 39279 cb9cf42c902f
permissions -rw-r--r--
phases: avoid a potentially costly dictionary interation in some case If we retract for the draft phase, there is not non-public item to be retracted and we can skip this part. This part is was apparently super costly thanks to Python. On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets bundle gives give use the following timing. e57d4b868a3e: 4.6 seconds ac1c75188440: 102.5 seconds this-changeset: 30.0 seconds So we recovered about ⅔ of the regression, the next changeset will give us the rest back.

Just exercise debugindexdot
Create a short file history including a merge.
  $ hg init t
  $ cd t
  $ echo a > a
  $ hg ci -qAm t1 -d '0 0'
  $ echo a >> a
  $ hg ci -m t2 -d '1 0'
  $ hg up -qC 0
  $ echo b >> a
  $ hg ci -m t3 -d '2 0'
  created new head
  $ HGMERGE=true hg merge -q
  $ hg ci -m merge -d '3 0'

  $ hg debugindexdot -c
  digraph G {
  	-1 -> 0
  	0 -> 1
  	0 -> 2
  	2 -> 3
  	1 -> 3
  }

  $ hg debugindexdot -m
  digraph G {
  	-1 -> 0
  	0 -> 1
  	0 -> 2
  	2 -> 3
  	1 -> 3
  }

  $ hg debugindexdot a
  digraph G {
  	-1 -> 0
  	0 -> 1
  	0 -> 2
  	2 -> 3
  	1 -> 3
  }

  $ cd ..