Mercurial > hg-stable
view tests/test-histedit-obsolete.t @ 18439:c6e3fa134da5
test-histedit: reorder phases test and prepare for more
We are going to add a lot regarding phase of test while fixing issue3724.
This movement allows to put them after this first phase test.
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Wed, 16 Jan 2013 19:19:56 +0100 |
parents | 81e77a8820f3 |
children | 35513c59f376 |
line wrap: on
line source
$ . "$TESTDIR/histedit-helpers.sh" Enable obsolete $ cat > ${TESTTMP}/obs.py << EOF > import mercurial.obsolete > mercurial.obsolete._enabled = True > EOF $ cat >> $HGRCPATH << EOF > [ui] > logtemplate= {rev}:{node|short} {desc|firstline} > [phases] > publish=False > [extensions]' > histedit= > rebase= > > obs=${TESTTMP}/obs.py > EOF $ hg init base $ cd base $ for x in a b c d e f ; do > echo $x > $x > hg add $x > hg ci -m $x > done $ hg log --graph @ 5:652413bf663e f | o 4:e860deea161a e | o 3:055a42cdd887 d | o 2:177f92b77385 c | o 1:d2ae7f538514 b | o 0:cb9a9f314b8b a $ HGEDITOR=cat hg histedit 1 pick d2ae7f538514 1 b pick 177f92b77385 2 c pick 055a42cdd887 3 d pick e860deea161a 4 e pick 652413bf663e 5 f # Edit history between d2ae7f538514 and 652413bf663e # # Commands: # p, pick = use commit # e, edit = use commit, but stop for amending # f, fold = use commit, but fold into previous commit (combines N and N-1) # d, drop = remove commit from history # m, mess = edit message without changing commit content # 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat > commands.txt <<EOF > pick 177f92b77385 2 c > drop d2ae7f538514 1 b > pick 055a42cdd887 3 d > fold e860deea161a 4 e > pick 652413bf663e 5 f > EOF $ hg histedit 1 --commands commands.txt --verbose | grep histedit saved backup bundle to $TESTTMP/base/.hg/strip-backup/96e494a2d553-backup.hg (glob) $ hg log --graph --hidden @ 8:cacdfd884a93 f | o 7:59d9f330561f d | o 6:b346ab9a313d c | | x 5:652413bf663e f | | | x 4:e860deea161a e | | | x 3:055a42cdd887 d | | | x 2:177f92b77385 c | | | x 1:d2ae7f538514 b |/ o 0:cb9a9f314b8b a $ hg debugobsolete d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {'date': '* *', 'user': 'test'} (glob) 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 {'date': '* *', 'user': 'test'} (glob) 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 {'date': '* *', 'user': 'test'} (glob) e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 {'date': '* *', 'user': 'test'} (glob) 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 {'date': '* *', 'user': 'test'} (glob) Ensure hidden revision does not prevent histedit ------------------------------------------------- create an hidden revision $ cat > commands.txt <<EOF > pick b346ab9a313d 6 c > drop 59d9f330561f 7 d > pick cacdfd884a93 8 f > EOF $ hg histedit 6 --commands commands.txt 0 files updated, 0 files merged, 3 files removed, 0 files unresolved 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log --graph @ 9:c13eb81022ca f | o 6:b346ab9a313d c | o 0:cb9a9f314b8b a check hidden revision are ignored (6 have hidden children 7 and 8) $ cat > commands.txt <<EOF > pick b346ab9a313d 6 c > pick c13eb81022ca 8 f > EOF $ hg histedit 6 --commands commands.txt 0 files updated, 0 files merged, 0 files removed, 0 files unresolved Test that rewriting leaving instability behind is allowed --------------------------------------------------------------------- $ hg up '.^' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg log -r 'children(.)' 9:c13eb81022ca f (no-eol) $ cat > commands.txt <<EOF > edit b346ab9a313d 6 c > EOF $ hg histedit -r '.' --commands commands.txt 0 files updated, 0 files merged, 1 files removed, 0 files unresolved adding c abort: Make changes as needed, you may commit or record as needed now. When you are finished, run hg histedit --continue to resume. [255] $ echo c >> c $ hg histedit --continue 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -r 'unstable()' 9:c13eb81022ca f (no-eol) stabilise $ hg rebase -r 'unstable()' -d . Check that histedit respect phases ========================================= (not directly related to the test file but doesn't deserve it's own test case) $ cat >> $HGRCPATH << EOF > [ui] > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n > EOF $ hg ph -pv '.^' phase changed for 2 changesets $ hg log -G @ 11:b449568bf7fc (draft) f | o 10:40db8afa467b (public) c | o 0:cb9a9f314b8b (public) a $ hg histedit -r '.~2' abort: cannot edit immutable changeset: cb9a9f314b8b [255]