view tests/test-rebase-keep-branch.t @ 12727:52971985be14

backout: provide linear backout as a default (without --merge option) This changes backouts changeset to retain linear history, .e. it is committed as a child of the working directory parent, not the reverted changeset parent. The default behavior was previously to just commit a reverted change as a child of the backed out changeset - thus creating a new head. Most of the time, you would use the --merge option, as it does not make sense to keep this dangling head as is. The previous behavior could be obtained by using 'hg update --clean .' after a 'hg backout --merge'. The --merge option itself is not affected by this change. There is also still an autocommit of the backout if a merge is not needed, i.e. in case the backout is the parent of the working directory. Previously we had (pwd = parent of the working directory): pwd older backout auto merge backout --merge auto commit With the new linear approach: pwd older backout auto commit backout --merge auto commit auto: commit done by the backout command merge: backout also already committed but explicit merge and commit needed commit: user need to commit the update/merge
author Gilles Moris <gilles.moris@free.fr>
date Fri, 10 Sep 2010 10:28:18 +0200
parents 6cc4b14fb76b
children
line wrap: on
line source

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


  $ hg init a
  $ cd a

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

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

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

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

  $ hg up -q -C 1

  $ hg branch 'notdefault'
  marked working directory as branch notdefault

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

  $ hg tglog
  @  4: 'r1' notdefault
  |
  | o  3: 'l2'
  | |
  | o  2: 'l1'
  |/
  o  1: 'c2'
  |
  o  0: 'c1'
  

Rebase a branch while preserving the branch name:

  $ hg up -q -C 3

  $ hg rebase -b 4 -d 3 --keepbranches
  saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)

  $ hg tglog
  @  4: 'r1' notdefault
  |
  o  3: 'l2'
  |
  o  2: 'l1'
  |
  o  1: 'c2'
  |
  o  0: 'c1'
  
  $ hg branch
  notdefault