tests/test-debugindexdot.t
author Martin von Zweigbergk <martinvonz@google.com>
Wed, 02 May 2018 23:17:58 -0700
changeset 37968 0304f22497fa
parent 37280 435481393198
child 39279 cb9cf42c902f
permissions -rw-r--r--
revlog: use node tree (native code) for shortest() calculation I want to rewrite revlog.shortest() to disambiguate only among hex nodeids and then disambiguate the result with revnums at a higher level (in scmutil). However, that would slow down `hg log -T '{shortest(node,1)}\n'` from 5.0s to 6.8s, which I wasn't sure would be acceptable. So this patch makes revlog.shortest() use the node tree for finding the length of the shortest prefix that's unambiguous among nodeids. Once that has been found, it makes it longer until it is also not ambiguous with a revnum. This speeds up `hg log -T '{shortest(node,1)}\n'` from 5.0s to 4.0s. Differential Revision: https://phab.mercurial-scm.org/D3499

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 a
  digraph G {
  	-1 -> 0
  	0 -> 1
  	0 -> 2
  	2 -> 3
  	1 -> 3
  }

  $ cd ..