view tests/test-glog-topological.t @ 45281:fe2040abb183

merge: make mergeresult constructor initialize empty object In future patches, we will be going to update mergeresult object instead of building an actions dict and then setting it in the object. Differential Revision: https://phab.mercurial-scm.org/D8819
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 24 Jul 2020 15:56:11 +0530
parents 604c086ddde6
children ed84a4d48910
line wrap: on
line source

This test file aims at test topological iteration and the various configuration it can has.

  $ cat >> $HGRCPATH << EOF
  > [ui]
  > logtemplate={rev}\n
  > EOF

On this simple example, all topological branch are displayed in turn until we
can finally display 0. this implies skipping from 8 to 3 and coming back to 7
later.

  $ hg init test01
  $ cd test01
  $ hg unbundle $TESTDIR/bundles/remote.hg
  adding changesets
  adding manifests
  adding file changes
  added 9 changesets with 7 changes to 4 files (+1 heads)
  new changesets bfaf4b5cbf01:916f1afdef90 (9 drafts)
  (run 'hg heads' to see heads, 'hg merge' to merge)

  $ hg log -G
  o  8
  |
  | o  7
  | |
  | o  6
  | |
  | o  5
  | |
  | o  4
  | |
  o |  3
  | |
  o |  2
  | |
  o |  1
  |/
  o  0
  

(display all nodes)

  $ hg log -G -r 'sort(all(), topo)'
  o  8
  |
  o  3
  |
  o  2
  |
  o  1
  |
  | o  7
  | |
  | o  6
  | |
  | o  5
  | |
  | o  4
  |/
  o  0
  

(display nodes filtered by log options)

  $ hg log -G -r 'sort(all(), topo)' -k '.3'
  o  8
  |
  o  3
  |
  ~
  o  7
  |
  o  6
  |
  ~

(revset skipping nodes)

  $ hg log -G --rev 'sort(not (2+6), topo)'
  o  8
  |
  o  3
  :
  o  1
  |
  | o  7
  | :
  | o  5
  | |
  | o  4
  |/
  o  0
  

(begin) from the other branch

  $ hg log -G -r 'sort(all(), topo, topo.firstbranch=5)'
  o  7
  |
  o  6
  |
  o  5
  |
  o  4
  |
  | o  8
  | |
  | o  3
  | |
  | o  2
  | |
  | o  1
  |/
  o  0
  

Topological sort can be turned on via config

  $ cat >> $HGRCPATH << EOF
  > [experimental]
  > log.topo=true
  > EOF

  $ hg log -G
  o  8
  |
  o  3
  |
  o  2
  |
  o  1
  |
  | o  7
  | |
  | o  6
  | |
  | o  5
  | |
  | o  4
  |/
  o  0
  
Does not affect non-graph log
  $ hg log -T '{rev}\n'
  8
  7
  6
  5
  4
  3
  2
  1
  0