sapling/eden/scm/tests/test-fb-hgext-fbhistedit-exec-obsolete.t

225 lines
5.2 KiB
Perl
Raw Normal View History

#chg-compatible
$ . "$TESTDIR/histedit-helpers.sh"
$ configure mutation-norecord
$ enable fbhistedit histedit rebase
$ 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
@ commit: 652413bf663e
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: f
o commit: e860deea161a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
o commit: 055a42cdd887
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
o commit: 177f92b77385
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
o commit: d2ae7f538514
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
o commit: cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
exec & continue should not preserve hashes
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF| fixbundle
> pick 177f92b77385 c
> pick 055a42cdd887 d
> pick e860deea161a e
> exec echo "this should be printed to stdout"
> exec echo "this should be printed to stderr" >&2
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
this should be printed to stdout
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
this should be printed to stderr
$ hg log --graph
@ commit: 652413bf663e
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: f
o commit: e860deea161a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
o commit: 055a42cdd887
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
o commit: 177f92b77385
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
o commit: d2ae7f538514
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
o commit: cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
ensure we are properly executed in a shell
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF| fixbundle
> pick 177f92b77385 c
> pick 055a42cdd887 d
> pick e860deea161a e
> exec echo "foo" >/dev/null && exit 0
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
a failing command should drop us into the shell
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF| fixbundle
> pick 177f92b77385 c
> pick 055a42cdd887 d
> pick e860deea161a e
> exec exit 1
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Command 'exit 1' failed with exit status 1
continue should work
$ hg histedit --continue
$ hg log --template '{node|short} {desc}' --graph
@ 652413bf663e f
o e860deea161a e
o 055a42cdd887 d
o 177f92b77385 c
o d2ae7f538514 b
o cb9a9f314b8b a
abort should work
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF| fixbundle
> pick 177f92b77385 c
> pick 055a42cdd887 d
> pick e860deea161a e
> exec exit 1
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Command 'exit 1' failed with exit status 1
$ hg histedit --abort
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log --template '{node|short} {desc}' --graph
@ 652413bf663e f
o e860deea161a e
o 055a42cdd887 d
o 177f92b77385 c
o d2ae7f538514 b
o cb9a9f314b8b a
Multiple exec commands must work
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF| fixbundle
> pick 177f92b77385 c
> pick 055a42cdd887 d
> exec exit 0
> pick e860deea161a e
> exec exit 0
> exec exit 0
> exec exit 0
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log --template '{node|short} {desc}' --graph
@ 652413bf663e f
o e860deea161a e
o 055a42cdd887 d
o 177f92b77385 c
o d2ae7f538514 b
o cb9a9f314b8b a
amend should just work fine
$ hg histedit 177f92b77385 --commands - 2>&1 << EOF
> pick 177f92b77385 c
> pick 055a42cdd887 d
> pick e860deea161a e
> exec echo "NEW" > NEW && hg add NEW && hg commit --amend
> pick 652413bf663e f
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg log --template '{node|short} {files} {desc}' --graph
@ 3cc63bf64c8d f f
o 8a564dc5ed88 NEW e e
o 055a42cdd887 d d
o 177f92b77385 c c
o d2ae7f538514 b b
o cb9a9f314b8b a a