##// END OF EJS Templates
histedit: tweak `edit` message to try and guide users to our workflow...
histedit: tweak `edit` message to try and guide users to our workflow histedit predates evolve, so it drops you on an _uncommitted_ version of the commit you're amending/splitting, which is in contrast to git which expects you to use `git commit --amend` (I think - I'm basing this on internal bug reports). My hope is that this output will guide users a little more towards the expected workflow. Differential Revision: https://phab.mercurial-scm.org/D9560

File last commit:

r46719:3f82a915 default
r46719:3f82a915 default
Show More
test-histedit-commute.t
552 lines | 14.5 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-commute.t
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ . "$TESTDIR/histedit-helpers.sh"
$ cat >> $HGRCPATH <<EOF
> [extensions]
> histedit=
> EOF
$ initrepo ()
> {
> hg init r
> cd r
> for x in a b c d e f ; do
> echo $x > $x
> hg add $x
> hg ci -m $x
> done
> }
$ initrepo
log before edit
$ hg log --graph
@ changeset: 5:652413bf663e
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
o changeset: 4:e860deea161a
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
o changeset: 3:055a42cdd887
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 2:177f92b77385
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 show the edit commands offered
$ HGEDITOR=cat hg histedit 177f92b77385
pick 177f92b77385 2 c
pick 055a42cdd887 3 d
pick e860deea161a 4 e
pick 652413bf663e 5 f
# Edit history between 177f92b77385 and 652413bf663e
#
Adrian Zgorzałek
histedit: clarify description of fold command...
r20503 # Commits are listed from least to most recent
#
liscju
histedit: adds hint how to reorder changesets at editor (issue3766)
r28396 # You can reorder changesets by reordering the lines
#
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 # Commands:
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 #
# e, edit = use commit, but stop for amending
# m, mess = edit commit message without changing commit content
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 # p, pick = use commit
Saurabh Singh
histedit: removing the experimental config 'histeditng'...
r34490 # b, base = checkout changeset and apply further changesets from there
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # d, drop = remove commit from history
Matt Mackall
histedit: shorten new fold message...
r20511 # f, fold = use commit, but combine it with the one above
Ben Schmidt
histedit: modify rollup to discard date from the rollup commit (issue4820)...
r31056 # r, roll = like fold, but discard this commit's description and date
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 #
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
test customization of revision summary
$ HGEDITOR=cat hg histedit 177f92b77385 \
> --config histedit.summary-template='I am rev {rev} desc {desc} tags {tags}'
pick 177f92b77385 I am rev 2 desc c tags
pick 055a42cdd887 I am rev 3 desc d tags
pick e860deea161a I am rev 4 desc e tags
pick 652413bf663e I am rev 5 desc f tags tip
# Edit history between 177f92b77385 and 652413bf663e
#
# Commits are listed from least to most recent
#
# You can reorder changesets by reordering the lines
#
# Commands:
#
# e, edit = use commit, but stop for amending
# m, mess = edit commit message without changing commit content
# p, pick = use commit
# b, base = checkout changeset and apply further changesets from there
# d, drop = remove commit from history
# f, fold = use commit, but combine it with the one above
# r, roll = like fold, but discard this commit's description and date
#
Martin von Zweigbergk
tests: show how `hg histedit` can put color codes in histedit plan...
r46461 colors in the custom template don't show up in the editor
$ HGEDITOR=cat hg histedit 177f92b77385 --color=debug \
> --config histedit.summary-template='I am rev {label("rev", rev)}'
Martin von Zweigbergk
histedit: disable color while rendering template for use in plan...
r46462 pick 177f92b77385 I am rev 2
pick 055a42cdd887 I am rev 3
pick e860deea161a I am rev 4
pick 652413bf663e I am rev 5
Martin von Zweigbergk
tests: show how `hg histedit` can put color codes in histedit plan...
r46461
# Edit history between 177f92b77385 and 652413bf663e
#
# Commits are listed from least to most recent
#
# You can reorder changesets by reordering the lines
#
# Commands:
#
# e, edit = use commit, but stop for amending
# m, mess = edit commit message without changing commit content
# p, pick = use commit
# b, base = checkout changeset and apply further changesets from there
# d, drop = remove commit from history
# f, fold = use commit, but combine it with the one above
# r, roll = like fold, but discard this commit's description and date
#
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 edit the history
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 (use a hacky editor to check histedit-last-edit.txt backup)
$ EDITED="$TESTTMP/editedhistory"
$ cat > $EDITED <<EOF
timeless
histedit: limit cleanup of histedit-last-edit.txt to success
r27546 > edit 177f92b77385 c
> pick e860deea161a e
> pick 652413bf663e f
> pick 055a42cdd887 d
> EOF
$ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
Augie Fackler
histedit: tweak `edit` message to try and guide users to our workflow...
r46719 Editing (177f92b77385), commit as needed now to split the change
(to edit 177f92b77385, `hg histedit --continue` after making changes)
timeless
histedit: limit cleanup of histedit-last-edit.txt to success
r27546
rules should end up in .hg/histedit-last-edit.txt:
$ cat .hg/histedit-last-edit.txt
edit 177f92b77385 c
pick e860deea161a e
pick 652413bf663e f
pick 055a42cdd887 d
$ hg histedit --abort
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat > $EDITED <<EOF
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 > pick 177f92b77385 c
> pick e860deea161a e
> pick 652413bf663e f
> pick 055a42cdd887 d
> EOF
Mads Kiilerich
tests: make histedit tests more resilient to filesystem variation...
r17086 $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
log after edit
$ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 5:07114f51870f
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 4:8ade9693061e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 3:d8249471110a
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
o changeset: 2:177f92b77385
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 put things back
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 177f92b77385 --commands - 2>&1 << EOF | fixbundle
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 > pick 177f92b77385 c
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick 07114f51870f d
> pick d8249471110a e
> pick 8ade9693061e f
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 > EOF
$ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 5:7eca9b5b1148
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 4:915da888f2de
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 3:10517e47bbbb
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 2:177f92b77385
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 slightly different this time
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 177f92b77385 --commands - << EOF 2>&1 | fixbundle
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick 10517e47bbbb d
> pick 7eca9b5b1148 f
> pick 915da888f2de e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 > pick 177f92b77385 c
> EOF
$ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 5:38b92f448761
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 4:de71b079d9ce
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 3:be9ae3a309c6
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 2:799205341b6b
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 keep prevents stripping dead revs
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 799205341b6b --keep --commands - 2>&1 << EOF | fixbundle
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick 799205341b6b d
> pick be9ae3a309c6 f
> pick 38b92f448761 c
> pick de71b079d9ce e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 > EOF
$ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 7:803ef1c6fcfd
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 6:ece0b8d93dda
| parent: 3:be9ae3a309c6
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 | o changeset: 5:38b92f448761
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: c
| |
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 | o changeset: 4:de71b079d9ce
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 3:be9ae3a309c6
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 2:799205341b6b
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 try with --rev
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit --commands - --rev -2 2>&1 <<EOF | fixbundle
> pick de71b079d9ce e
> pick 38b92f448761 c
> EOF
FUJIWARA Katsunori
histedit: show correct hash ID at verification error...
r27955 hg: parse error: pick "de71b079d9ce" changeset was not a candidate
timeless
histedit: report the unacceptable changeset
r27712 (only use listed changesets)
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 7:803ef1c6fcfd
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 6:ece0b8d93dda
| parent: 3:be9ae3a309c6
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 | o changeset: 5:38b92f448761
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: c
| |
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 | o changeset: 4:de71b079d9ce
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 |/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 3:be9ae3a309c6
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 2:799205341b6b
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 1:d2ae7f538514
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Augie Fackler
histedit: respect revsetalias entries (issue4311)...
r21950 Verify that revsetalias entries work with histedit:
$ cat >> $HGRCPATH <<EOF
> [revsetalias]
> grandparent(ARG) = p1(p1(ARG))
> EOF
$ echo extra commit >> c
$ hg ci -m 'extra commit to c'
$ HGEDITOR=cat hg histedit 'grandparent(.)'
pick ece0b8d93dda 6 c
pick 803ef1c6fcfd 7 e
pick 9c863c565126 8 extra commit to c
# Edit history between ece0b8d93dda and 9c863c565126
#
# Commits are listed from least to most recent
#
liscju
histedit: adds hint how to reorder changesets at editor (issue3766)
r28396 # You can reorder changesets by reordering the lines
#
Augie Fackler
histedit: respect revsetalias entries (issue4311)...
r21950 # Commands:
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 #
# e, edit = use commit, but stop for amending
# m, mess = edit commit message without changing commit content
Augie Fackler
histedit: respect revsetalias entries (issue4311)...
r21950 # p, pick = use commit
Saurabh Singh
histedit: removing the experimental config 'histeditng'...
r34490 # b, base = checkout changeset and apply further changesets from there
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # d, drop = remove commit from history
Augie Fackler
histedit: respect revsetalias entries (issue4311)...
r21950 # f, fold = use commit, but combine it with the one above
Ben Schmidt
histedit: modify rollup to discard date from the rollup commit (issue4820)...
r31056 # r, roll = like fold, but discard this commit's description and date
Augie Fackler
histedit: respect revsetalias entries (issue4311)...
r21950 #
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 should also work if a commit message is missing
$ BUNDLE="$TESTDIR/missing-comment.hg"
$ hg init missing
$ cd missing
$ hg unbundle $BUNDLE
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 141947992243:bd22688093b3 (3 drafts)
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 (run 'hg update' to get a working copy)
$ hg co tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log --graph
@ changeset: 2:bd22688093b3
| tag: tip
| user: Robert Altman <robert.altman@telventDTN.com>
| date: Mon Nov 28 16:40:04 2011 +0000
| summary: Update file.
|
o changeset: 1:3b3e956f9171
| user: Robert Altman <robert.altman@telventDTN.com>
| date: Mon Nov 28 16:37:57 2011 +0000
|
o changeset: 0:141947992243
user: Robert Altman <robert.altman@telventDTN.com>
date: Mon Nov 28 16:35:28 2011 +0000
summary: Checked in text file
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ hg histedit 0
$ cd ..
Augie Fackler
histedit: add a test to show that issue4251 is fixed (issue4251)...
r23889
$ cd ..
Test to make sure folding renames doesn't cause bogus conflicts (issue4251):
$ hg init issue4251
$ cd issue4251
$ mkdir initial-dir
$ echo foo > initial-dir/initial-file
$ hg add initial-dir/initial-file
$ hg commit -m "initial commit"
Move the file to a new directory, and in the same commit, change its content:
$ mkdir another-dir
$ hg mv initial-dir/initial-file another-dir/
$ echo changed > another-dir/initial-file
$ hg commit -m "moved and changed"
Rename the file:
$ hg mv another-dir/initial-file another-dir/renamed-file
$ hg commit -m "renamed"
Now, let's try to fold the second commit into the first:
$ cat > editor.sh <<EOF
> #!/bin/sh
> cat > \$1 <<ENDOF
> pick b0f4233702ca 0 initial commit
> fold 5e8704a8f2d2 1 moved and changed
> pick 40e7299e8fa7 2 renamed
> ENDOF
> EOF
Matt Mackall
test-histedit-commute: call helper script with sh...
r23910 $ HGEDITOR="sh ./editor.sh" hg histedit 0
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/issue4251/.hg/strip-backup/b0f4233702ca-4cf5af69-histedit.hg
Augie Fackler
histedit: add a test to show that issue4251 is fixed (issue4251)...
r23889
$ hg --config diff.git=yes export 0
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID fffadc26f8f85623ce60b028a3f1ccc3730f8530
# Parent 0000000000000000000000000000000000000000
pick b0f4233702ca 0 initial commit
fold 5e8704a8f2d2 1 moved and changed
pick 40e7299e8fa7 2 renamed
diff --git a/another-dir/initial-file b/another-dir/initial-file
new file mode 100644
--- /dev/null
+++ b/another-dir/initial-file
@@ -0,0 +1,1 @@
+changed
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Augie Fackler
histedit: add a test to show that issue4251 is fixed (issue4251)...
r23889 $ hg --config diff.git=yes export 1
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID 9b730d82b00af8a2766facebfa47cc124405a118
# Parent fffadc26f8f85623ce60b028a3f1ccc3730f8530
renamed
diff --git a/another-dir/initial-file b/another-dir/renamed-file
rename from another-dir/initial-file
rename to another-dir/renamed-file
Augie Fackler
histedit: add templating support to histedit's rule file generation...
r41650
Augie Fackler
histedit: add a test to show that issue4251 is fixed (issue4251)...
r23889 $ cd ..
Boris Feld
histedit: preserve active branch while histediting...
r35391
Test that branches are preserved and stays active
-------------------------------------------------
$ hg init repo-with-branch
$ cd repo-with-branch
$ echo a > a
$ hg add a
$ hg commit -m A
$ hg branch foo
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
$ echo a > b
$ hg add b
$ hg commit -m foo-B
$ echo a > c
$ hg add c
$ hg commit -m foo-C
$ hg branch
foo
$ echo "pick efefa76d6dc3 2 foo-C" >> cmd
$ echo "pick 7336e7550422 1 foo-B" >> cmd
$ HGEDITOR=cat hg histedit -r ".^" --commands cmd --quiet
$ hg log --template '{rev} {branch}\n'
2 foo
1 foo
0 default
$ hg branch
foo
$ cd ..