tests/test-rebase-detach.t
author timeless <timeless@gmail.com>
Sun, 02 Jan 2011 18:51:59 +0200
changeset 13236 3f299f5d9a29
parent 13021 6c800e7ef2f6
child 14121 012c719103ab
permissions -rw-r--r--
progress: handle days, weeks and years using hg clone svn://anonsvn.kde.org/home/kde/trunk kde ... with progress yields 3008/1210830 1314h56m, which is unusable. Add code to switch to days at 30 hours, to weeks at 15 days, and to years at 55 weeks. A day has 24 hours, a week has 7 days, and a year has 52 weeks. Months are intentionally omitted because they do not have a fixed length. The Use of 52 weeks is a known and understandable estimate for a year. It might make sense to spell our year to alert people when progress is impractical, but...

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > graphlog=
  > rebase=
  > 
  > [alias]
  > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
  > EOF


  $ hg init a
  $ cd a

  $ echo A > A
  $ hg ci -Am A
  adding A

  $ echo B > B
  $ hg ci -Am B
  adding B

  $ echo C > C
  $ hg ci -Am C
  adding C

  $ echo D > D
  $ hg ci -Am D
  adding D

  $ hg up -q -C 0

  $ echo E > E
  $ hg ci -Am E
  adding E
  created new head

  $ cd ..


Rebasing D onto E detaching from C:

  $ hg clone -q -u . a a1
  $ cd a1

  $ hg tglog
  @  4: 'E'
  |
  | o  3: 'D'
  | |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg rebase --detach -s 3 -d 4
  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'D'
  |
  o  3: 'E'
  |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg manifest
  A
  D
  E

  $ cd ..


Rebasing C onto E detaching from B:

  $ hg clone -q -u . a a2
  $ cd a2

  $ hg tglog
  @  4: 'E'
  |
  | o  3: 'D'
  | |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg rebase --detach -s 2 -d 4
  saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'D'
  |
  o  3: 'C'
  |
  o  2: 'E'
  |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg manifest
  A
  C
  D
  E

  $ cd ..


Rebasing B onto E using detach (same as not using it):

  $ hg clone -q -u . a a3
  $ cd a3

  $ hg tglog
  @  4: 'E'
  |
  | o  3: 'D'
  | |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg rebase --detach -s 1 -d 4
  saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'D'
  |
  o  3: 'C'
  |
  o  2: 'B'
  |
  o  1: 'E'
  |
  o  0: 'A'
  
  $ hg manifest
  A
  B
  C
  D
  E

  $ cd ..


Rebasing C onto E detaching from B and collapsing:

  $ hg clone -q -u . a a4
  $ cd a4

  $ hg tglog
  @  4: 'E'
  |
  | o  3: 'D'
  | |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg rebase --detach --collapse -s 2 -d 4
  saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  3: 'Collapsed revision
  |  * C
  |  * D'
  o  2: 'E'
  |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg manifest
  A
  C
  D
  E

  $ cd ..

Rebasing across null as ancestor
  $ hg clone -q -U a a5

  $ cd a5

  $ echo x > x

  $ hg add x

  $ hg ci -m "extra branch"
  created new head

  $ hg tglog
  @  5: 'extra branch'
  
  o  4: 'E'
  |
  | o  3: 'D'
  | |
  | o  2: 'C'
  | |
  | o  1: 'B'
  |/
  o  0: 'A'
  
  $ hg rebase --detach -s 1 -d tip
  saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  5: 'D'
  |
  o  4: 'C'
  |
  o  3: 'B'
  |
  o  2: 'extra branch'
  
  o  1: 'E'
  |
  o  0: 'A'