tests/test-convert-datesort.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Thu, 20 Dec 2012 11:52:50 +0100
changeset 18112 569091b938a9
parent 15615 41885892796e
child 18819 05acdf8e1f23
permissions -rw-r--r--
branchmap: simplify _branchtags using a new _cacheabletip method The current _branchtags method is a remnant of an older, much larger function. Its only remaining role is to help MQ to alter the version of branchcache we store on disk. As MQ mutates the repository it ensures persistent cache does not contain anything it is likely to alter. This changeset makes explicit the stable vs volatile part of repository and reduces the MQ specific code to the computation of this limit. The main _branchtags code now handles this possible limit in all cases. This will help to extract the branchmap logic from the repository. The new code of _branchtags is a bit duplicated, but as I expect major refactoring of this section I'm not keen to setup factorisation function here.


  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > convert=
  > graphlog=
  > EOF
  $ hg init t
  $ cd t
  $ echo a >> a
  $ hg ci -Am a0 -d '1 0'
  adding a
  $ hg branch brancha
  marked working directory as branch brancha
  (branches are permanent and global, did you want a bookmark?)
  $ echo a >> a
  $ hg ci -m a1 -d '2 0'
  $ echo a >> a
  $ hg ci -m a2 -d '3 0'
  $ echo a >> a
  $ hg ci -m a3 -d '4 0'
  $ hg up -C 0
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg branch branchb
  marked working directory as branch branchb
  (branches are permanent and global, did you want a bookmark?)
  $ echo b >> b
  $ hg ci -Am b0 -d '6 0'
  adding b
  $ hg up -C brancha
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo a >> a
  $ hg ci -m a4 -d '5 0'
  $ echo a >> a
  $ hg ci -m a5 -d '7 0'
  $ echo a >> a
  $ hg ci -m a6 -d '8 0'
  $ hg up -C branchb
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ echo b >> b
  $ hg ci -m b1 -d '9 0'
  $ cd ..

convert with datesort

  $ hg convert --datesort t t-datesort
  initializing destination t-datesort repository
  scanning source...
  sorting...
  converting...
  8 a0
  7 a1
  6 a2
  5 a3
  4 a4
  3 b0
  2 a5
  1 a6
  0 b1

graph converted repo

  $ hg -R t-datesort glog --template '{rev} "{desc}"\n'
  o  8 "b1"
  |
  | o  7 "a6"
  | |
  | o  6 "a5"
  | |
  o |  5 "b0"
  | |
  | o  4 "a4"
  | |
  | o  3 "a3"
  | |
  | o  2 "a2"
  | |
  | o  1 "a1"
  |/
  o  0 "a0"
  

convert with datesort (default mode)

  $ hg convert t t-sourcesort
  initializing destination t-sourcesort repository
  scanning source...
  sorting...
  converting...
  8 a0
  7 a1
  6 a2
  5 a3
  4 b0
  3 a4
  2 a5
  1 a6
  0 b1

graph converted repo

  $ hg -R t-sourcesort glog --template '{rev} "{desc}"\n'
  o  8 "b1"
  |
  | o  7 "a6"
  | |
  | o  6 "a5"
  | |
  | o  5 "a4"
  | |
  o |  4 "b0"
  | |
  | o  3 "a3"
  | |
  | o  2 "a2"
  | |
  | o  1 "a1"
  |/
  o  0 "a0"