# HG changeset patch # User Pierre-Yves David # Date 1403885253 -7200 # Node ID 80206e63c3ccc49cca78eba14e30a4fdf3688b45 # Parent 2cfe5ec47803f821918aab3350f2245271e24242 test-revert: add case where wc content is already reverted to base content This test highlights multiple misbehaviors of revert. We augment the test comments accordingly. diff -r 2cfe5ec47803 -r 80206e63c3cc tests/test-revert.t --- a/tests/test-revert.t Fri Jun 27 18:02:09 2014 +0200 +++ b/tests/test-revert.t Fri Jun 27 18:07:33 2014 +0200 @@ -451,6 +451,8 @@ > wccontent = { > # clean: wc content is the same as parent > 'clean': lambda cc: cc[1], + > # revert: wc content is the same as base + > 'revert': lambda cc: cc[0], > } > > # build the combination of possible states @@ -496,10 +498,15 @@ $ python gen-revert-cases.py filelist added_clean + added_revert clean_clean + clean_revert missing_clean + missing_revert modified_clean + modified_revert removed_clean + removed_revert Script to make a simple text version of the content --------------------------------------------------- @@ -527,12 +534,18 @@ $ python ../gen-revert-cases.py base $ hg addremove --similarity 0 adding clean_clean + adding clean_revert adding modified_clean + adding modified_revert adding removed_clean + adding removed_revert $ hg status A clean_clean + A clean_revert A modified_clean + A modified_revert A removed_clean + A removed_revert $ hg commit -m 'base' (create a simple text version of the content) @@ -540,19 +553,27 @@ $ python ../dircontent.py > ../content-base.txt $ cat ../content-base.txt base clean_clean + base clean_revert base modified_clean + base modified_revert base removed_clean + base removed_revert Create parent changeset $ python ../gen-revert-cases.py parent $ hg addremove --similarity 0 adding added_clean + adding added_revert removing removed_clean + removing removed_revert $ hg status M modified_clean + M modified_revert A added_clean + A added_revert R removed_clean + R removed_revert $ hg commit -m 'parent' (create a simple text version of the content) @@ -560,14 +581,22 @@ $ python ../dircontent.py > ../content-parent.txt $ cat ../content-parent.txt parent added_clean + parent added_revert base clean_clean + base clean_revert parent modified_clean + parent modified_revert Setup working directory $ python ../gen-revert-cases.py wc | cat $ hg addremove --similarity 0 + removing added_revert + adding removed_revert $ hg status + M modified_revert + A removed_revert + R added_revert $ hg status --rev 'desc("base")' M modified_clean @@ -580,7 +609,10 @@ $ cat ../content-wc.txt parent added_clean base clean_clean + base clean_revert parent modified_clean + base modified_revert + base removed_revert $ cd .. @@ -595,6 +627,9 @@ check revert output $ hg revert --all + undeleting added_revert + reverting modified_revert + forgetting removed_revert Compare resulting directory with revert target. @@ -604,7 +639,8 @@ $ python ../dircontent.py > ../content-parent-all.txt $ cd .. $ diff -U 0 -- content-parent.txt content-parent-all.txt | grep _ - [1] + +base modified_revert.orig + +base removed_revert Test revert --all to "base" content ----------------------------------- @@ -616,10 +652,19 @@ check revert output +Misbehavior: + +- report "reverting" when file needs no changes +| +| - reverting modified_revert +| - reverting removed_revert + $ hg revert --all --rev 'desc(base)' removing added_clean reverting modified_clean + reverting modified_revert adding removed_clean + reverting removed_revert Compare resulting directory with revert target. @@ -650,18 +695,30 @@ ### revert for: added_clean no changes needed to added_clean + ### revert for: added_revert + ### revert for: clean_clean no changes needed to clean_clean + ### revert for: clean_revert + no changes needed to clean_revert + ### revert for: missing_clean missing_clean: no such file in rev * (glob) + ### revert for: missing_revert + missing_revert: no such file in rev * (glob) + ### revert for: modified_clean no changes needed to modified_clean + ### revert for: modified_revert + ### revert for: removed_clean removed_clean: no such file in rev * (glob) + ### revert for: removed_revert + check resulting directory againt the --all run (There should be no difference) @@ -687,6 +744,10 @@ - fails to report no change to revert for | | - clean_clean +| - added_revert +| - clean_revert +| - modified_revert +| - removed_revert $ for file in `python ../gen-revert-cases.py filelist`; do > echo '### revert for:' $file; @@ -695,15 +756,26 @@ > done ### revert for: added_clean + ### revert for: added_revert + ### revert for: clean_clean + ### revert for: clean_revert + ### revert for: missing_clean missing_clean: no such file in rev * (glob) + ### revert for: missing_revert + missing_revert: no such file in rev * (glob) + ### revert for: modified_clean + ### revert for: modified_revert + ### revert for: removed_clean + ### revert for: removed_revert + check resulting directory againt the --all run (There should be no difference)