Mercurial > evolve
view tests/test-uncommit.t @ 314:ebd286f06879
uncommit: add --all option
Convenient when combined with --exclude.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sat, 23 Jun 2012 19:24:37 +0200 |
parents | 47d10459fa24 |
children | 4bbc17716f5a |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [extensions] > hgext.rebase= > hgext.graphlog= > EOF $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH $ glog() { > hg glog --template '{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n' "$@" > } $ hg init repo $ cd repo Cannot uncommit null changeset $ hg uncommit abort: cannot rewrite immutable changeset [255] Cannot uncommit public changeset $ echo a > a $ hg ci -Am adda a $ hg phase --public . $ hg uncommit abort: cannot rewrite immutable changeset [255] $ hg phase --force --draft . Cannot uncommit merge $ hg up -q null $ echo b > b $ echo c > c $ echo d > d $ echo f > f $ echo g > g $ echo j > j $ echo m > m $ echo n > n $ echo o > o $ hg ci -Am addmore adding b adding c adding d adding f adding g adding j adding m adding n adding o created new head $ hg merge 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg uncommit abort: cannot uncommit while merging [255] $ hg ci -m merge $ hg uncommit abort: cannot uncommit merge changeset [255] Prepare complicated changeset $ hg branch bar marked working directory as branch bar (branches are permanent and global, did you want a bookmark?) $ hg cp a aa $ echo b >> b $ hg rm c $ echo d >> d $ echo e > e $ hg mv f ff $ hg mv g h $ echo j >> j $ echo k > k $ echo l > l $ hg rm m $ hg rm n $ echo o >> o $ hg ci -Am touncommit adding e adding k adding l $ hg st --copies --change . M b M d M j M o A aa a A e A ff f A h g A k A l R c R f R g R m R n $ hg man -r . a aa b d e ff h j k l o Add a couple of bookmarks $ glog --hidden @ 3:5eb72dbe0cb4@bar(stable/draft) touncommit | o 2:f63b90038565@default(stable/draft) merge |\ | o 1:f15c744d48e8@default(stable/draft) addmore | o 0:07f494440405@default(stable/draft) adda $ hg bookmark -r 2 unrelated $ hg bookmark touncommit-bm $ hg bookmark --inactive touncommit-bm-inactive $ hg bookmarks * touncommit-bm 3:5eb72dbe0cb4 touncommit-bm-inactive 3:5eb72dbe0cb4 unrelated 2:f63b90038565 Prepare complicated working directory $ hg branch foo marked working directory as branch foo (branches are permanent and global, did you want a bookmark?) $ hg mv ff f $ hg mv h i $ hg rm j $ hg rm k $ echo l >> l $ echo m > m $ echo o > o Test uncommit without argument, should be a no-op $ hg uncommit abort: nothing to uncommit [255] $ hg bookmarks * touncommit-bm 3:5eb72dbe0cb4 touncommit-bm-inactive 3:5eb72dbe0cb4 unrelated 2:f63b90038565 Test no matches $ hg uncommit --include nothere abort: nothing to uncommit [255] Enjoy uncommit $ hg uncommit aa b c f ff g h j k l m o $ hg branch foo $ hg st --copies M b A aa a A i g A l R c R g R j R m $ cat aa a $ cat b b b $ cat l l l $ cat m m $ test -f c && echo 'error: c was removed!' [1] $ test -f j && echo 'error: j was removed!' [1] $ test -f k && echo 'error: k was removed!' [1] $ hg st --copies --change . M d A e R n $ hg man -r . a b c d e f g j m o $ hg cat -r . d d d $ hg cat -r . e e $ glog --hidden @ 4:e8db4aa611f6@bar(stable/draft) touncommit | | o 3:5eb72dbe0cb4@bar(extinct/secret) touncommit |/ o 2:f63b90038565@default(stable/draft) merge |\ | o 1:f15c744d48e8@default(stable/draft) addmore | o 0:07f494440405@default(stable/draft) adda $ hg bookmarks * touncommit-bm 4:e8db4aa611f6 touncommit-bm-inactive 4:e8db4aa611f6 unrelated 2:f63b90038565 $ hg debugsuccessors 5eb72dbe0cb4 e8db4aa611f6 Test phase is preserved, no local changes $ hg up -C 3 8 files updated, 0 files merged, 1 files removed, 0 files unresolved Working directory parent is obsolete $ hg --config extensions.purge= purge $ hg uncommit -I 'set:added() and e' $ hg st --copies A e $ hg st --copies --change . M b M d M j M o A aa A ff f A h g A k A l R c R f R g R m R n $ glog --hidden @ 5:c706fe2c12f8@bar(stable/secret) touncommit | | o 4:e8db4aa611f6@bar(stable/draft) touncommit |/ | o 3:5eb72dbe0cb4@bar(extinct/secret) touncommit |/ o 2:f63b90038565@default(stable/draft) merge |\ | o 1:f15c744d48e8@default(stable/draft) addmore | o 0:07f494440405@default(stable/draft) adda $ hg debugsuccessors 5eb72dbe0cb4 c706fe2c12f8 5eb72dbe0cb4 e8db4aa611f6 Test --all $ hg up -C 3 2 files updated, 0 files merged, 0 files removed, 0 files unresolved Working directory parent is obsolete $ hg --config extensions.purge= purge $ hg uncommit --all -X e $ hg st --copies M b M d M j M o A aa a A ff f A h g A k A l R c R f R g R m R n $ hg st --copies --change . A e