Mercurial > hg
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