From patchwork Tue Aug 12 19:43:47 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [07, of, 11] test-revert: add case where the file is marked as removed in the wc From: Pierre-Yves David X-Patchwork-Id: 5362 Message-Id: <64fd1a776fa7ee525456.1407872627@marginatus.alto.octopoid.net> To: mercurial-devel@selenic.com Cc: Pierre-Yves David Date: Tue, 12 Aug 2014 12:43:47 -0700 # HG changeset patch # User Pierre-Yves David # Date 1403885386 -7200 # Fri Jun 27 18:09:46 2014 +0200 # Node ID 64fd1a776fa7ee525456729d2d85de53bc97a850 # Parent fda3d9fac3077936915fb9e56b40358f24302423 test-revert: add case where the file is marked as removed in the wc Unlike untracked, the file is also missing from the working directory. This test highlight a small misbehavior in output when reverting to another revision. diff --git a/tests/test-revert.t b/tests/test-revert.t --- a/tests/test-revert.t +++ b/tests/test-revert.t @@ -453,10 +453,12 @@ Write the python script to disk > 'clean': lambda cc: cc[1], > # revert: wc content is the same as base > 'revert': lambda cc: cc[0], > # wc: file exist with a content different from base and parent > 'wc': lambda cc: 'wc', + > # removed: file is missing and marked as untracked + > 'removed': lambda cc: None, > } > > # build the combination of possible state > combination = [] > for ctxkey in ctxcontent: @@ -498,22 +500,27 @@ Write the python script to disk check list of planned files $ python gen-revert-cases.py filelist added_clean + added_removed added_revert added_wc clean_clean + clean_removed clean_revert clean_wc missing_clean + missing_removed missing_revert missing_wc modified_clean + modified_removed modified_revert modified_wc removed_clean + removed_removed removed_revert removed_wc Script to make a simple text version of the content --------------------------------------------------- @@ -539,107 +546,133 @@ Generate appropriate repo state Generate base changeset $ python ../gen-revert-cases.py base $ hg addremove --similarity 0 adding clean_clean + adding clean_removed adding clean_revert adding clean_wc adding modified_clean + adding modified_removed adding modified_revert adding modified_wc adding removed_clean + adding removed_removed adding removed_revert adding removed_wc $ hg status A clean_clean + A clean_removed A clean_revert A clean_wc A modified_clean + A modified_removed A modified_revert A modified_wc A removed_clean + A removed_removed A removed_revert A removed_wc $ hg commit -m 'base' (create a simple text version of the content) $ python ../dircontent.py > ../content-base.txt $ cat ../content-base.txt base clean_clean + base clean_removed base clean_revert base clean_wc base modified_clean + base modified_removed base modified_revert base modified_wc base removed_clean + base removed_removed base removed_revert base removed_wc Create parent changeset $ python ../gen-revert-cases.py parent $ hg addremove --similarity 0 adding added_clean + adding added_removed adding added_revert adding added_wc removing removed_clean + removing removed_removed removing removed_revert removing removed_wc $ hg status M modified_clean + M modified_removed M modified_revert M modified_wc A added_clean + A added_removed A added_revert A added_wc R removed_clean + R removed_removed R removed_revert R removed_wc $ hg commit -m 'parent' (create a simple text version of the content) $ python ../dircontent.py > ../content-parent.txt $ cat ../content-parent.txt parent added_clean + parent added_removed parent added_revert parent added_wc base clean_clean + base clean_removed base clean_revert base clean_wc parent modified_clean + parent modified_removed parent modified_revert parent modified_wc Setup working directory $ python ../gen-revert-cases.py wc | cat $ hg addremove --similarity 0 + removing added_removed removing added_revert + removing clean_removed adding missing_wc + removing modified_removed adding removed_revert adding removed_wc $ hg status M added_wc M clean_wc M modified_revert M modified_wc A missing_wc A removed_revert A removed_wc + R added_removed R added_revert + R clean_removed + R modified_removed $ hg status --rev 'desc("base")' M clean_wc M modified_clean M modified_wc M removed_wc A added_clean A added_wc A missing_wc + R clean_removed + R modified_removed R removed_clean + R removed_removed (create a simple text version of the content) $ python ../dircontent.py > ../content-wc.txt $ cat ../content-wc.txt @@ -666,14 +699,17 @@ Test revert --all to parent content $ cd revert-parent-all check revert output $ hg revert --all + undeleting added_removed undeleting added_revert reverting added_wc + undeleting clean_removed reverting clean_wc forgetting missing_wc + undeleting modified_removed reverting modified_revert reverting modified_wc forgetting removed_revert forgetting removed_wc @@ -711,16 +747,19 @@ Misbehavior: | - reverting removed_revert $ hg revert --all --rev 'desc(base)' removing added_clean removing added_wc + undeleting clean_removed reverting clean_wc forgetting missing_wc reverting modified_clean + undeleting modified_removed reverting modified_revert reverting modified_wc adding removed_clean + adding removed_removed reverting removed_revert reverting removed_wc Compare resulting directory with revert target. @@ -757,40 +796,52 @@ revert all files individually and check > echo > done ### revert for: added_clean no changes needed to added_clean + ### revert for: added_removed + ### revert for: added_revert ### revert for: added_wc ### revert for: clean_clean no changes needed to clean_clean + ### revert for: clean_removed + ### revert for: clean_revert no changes needed to clean_revert ### revert for: clean_wc ### revert for: missing_clean missing_clean: no such file in rev * (glob) + ### revert for: missing_removed + missing_removed: no such file in rev * (glob) + ### revert for: missing_revert missing_revert: no such file in rev * (glob) ### revert for: missing_wc ### revert for: modified_clean no changes needed to modified_clean + ### revert for: modified_removed + ### revert for: modified_revert ### revert for: modified_wc ### revert for: removed_clean removed_clean: no such file in rev * (glob) + ### revert for: removed_removed + removed_removed: no such file in rev * (glob) + ### revert for: removed_revert ### revert for: removed_wc @@ -820,44 +871,56 @@ Misbehavior: | - clean_clean | - added_revert | - clean_revert | - modified_revert | - removed_revert +| - added_removed $ for file in `python ../gen-revert-cases.py filelist`; do > echo '### revert for:' $file; > hg revert $file --rev 'desc(base)'; > echo > done ### revert for: added_clean + ### revert for: added_removed + ### revert for: added_revert ### revert for: added_wc ### revert for: clean_clean + ### revert for: clean_removed + ### revert for: clean_revert ### revert for: clean_wc ### revert for: missing_clean missing_clean: no such file in rev * (glob) + ### revert for: missing_removed + missing_removed: no such file in rev * (glob) + ### revert for: missing_revert missing_revert: no such file in rev * (glob) ### revert for: missing_wc ### revert for: modified_clean + ### revert for: modified_removed + ### revert for: modified_revert ### revert for: modified_wc ### revert for: removed_clean + ### revert for: removed_removed + ### revert for: removed_revert ### revert for: removed_wc