view tests/test-glog-topological.t @ 45992:9dd5b129ff28

tests: set old git default branch name for compatibility Git's default branch name has changed on my machine (from "master" to "main"). Let's set the old name in our tests so we're compatible with both defaults (and maybe still compatible with Git versions that don't know about the config option). Differential Revision: https://phab.mercurial-scm.org/D9470
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 30 Nov 2020 09:47:46 -0800
parents ed84a4d48910
children
line wrap: on
line source

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

  $ cat >> $HGRCPATH << EOF
  > [command-templates]
  > log={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