# HG changeset patch # User Martin von Zweigbergk # Date 2014-10-20 05:19:22 # Node ID 6f31f46b85440257c219cbfd7c3f066a16a3f9fa # Parent 4f4e6815f2862e0689c373cb14066c8aa991517e test-revert: make sure all 'tracked' files are really tracked When a file is missing in the 'parent' version and is tracked but missing in the working directory, which happens by the 'missing' or 'removed' types, and the 'clean' type in the working directory, the file does not exist in the working directory (unlike it would had the 'deleted' type been used). Thus, the *_missing_missing_tracked are not actually tracked and they end up testing the same state as *_missing_missing_untracked. To make them tracked, add a temporary file, just like we do for the delete case. For simplicity's sake, let's make sure the gen-revert-cases.py script always puts a file in the working directory, whether or not it's going to be deleted. diff --git a/tests/test-revert.t b/tests/test-revert.t --- a/tests/test-revert.t +++ b/tests/test-revert.t @@ -452,7 +452,7 @@ Write the python script to disk > 'wc': (True, lambda cc: 'content3'), > # deleted: file is recorded as tracked but missing > # rely on file deletion outside of this script - > 'deleted': (True, lambda cc:'TOBEDELETED'), + > 'deleted': (True, lambda cc: None), > } > # untracked-X is a version of X where the file is not tracked (? unknown) > wccontent['untracked-clean'] = (False, wccontent['clean'][1]) @@ -472,7 +472,7 @@ Write the python script to disk > if not parent and 'deleted' in wckey: > continue > def statestring(content): - > return content in (None, 'TOBEDELETED') and 'missing' or content + > return content is None and 'missing' or content > wcc = wcfunc(ctxvalue) > trackedstring = tracked and 'tracked' or 'untracked' > filename = "%s_%s_%s-%s" % (statestring(base), @@ -497,7 +497,9 @@ Write the python script to disk > elif target == 'parent': > content.append((filename, parent)) > elif target == 'wc': - > content.append((filename, wcc)) + > # Make sure there is content so the file gets written and can be + > # tracked. It will be deleted outside of this script. + > content.append((filename, wcc or 'TOBEDELETED')) > else: > print >> sys.stderr, "unknown target:", target > sys.exit(1) @@ -711,8 +713,12 @@ Setup working directory adding content1_missing_content1-untracked adding content1_missing_content3-tracked adding content1_missing_content3-untracked + adding content1_missing_missing-tracked + adding content1_missing_missing-untracked adding missing_missing_content3-tracked adding missing_missing_content3-untracked + adding missing_missing_missing-tracked + adding missing_missing_missing-untracked $ hg forget *_*_*-untracked $ rm *_*_missing-* $ hg status @@ -735,7 +741,9 @@ Setup working directory R missing_content2_missing-untracked ! content1_content1_missing-tracked ! content1_content2_missing-tracked + ! content1_missing_missing-tracked ! missing_content2_missing-tracked + ! missing_missing_missing-tracked ? content1_missing_content1-untracked ? content1_missing_content3-untracked ? missing_missing_content3-untracked @@ -761,7 +769,9 @@ Setup working directory R content1_missing_missing-untracked ! content1_content1_missing-tracked ! content1_content2_missing-tracked + ! content1_missing_missing-tracked ! missing_content2_missing-tracked + ! missing_missing_missing-tracked ? missing_missing_content3-untracked (create a simple text version of the content) @@ -816,12 +826,14 @@ check revert output undeleting content1_content2_missing-untracked forgetting content1_missing_content1-tracked forgetting content1_missing_content3-tracked + forgetting content1_missing_missing-tracked undeleting missing_content2_content2-untracked reverting missing_content2_content3-tracked undeleting missing_content2_content3-untracked reverting missing_content2_missing-tracked undeleting missing_content2_missing-untracked forgetting missing_missing_content3-tracked + forgetting missing_missing_missing-tracked Compare resulting directory with revert target. @@ -872,12 +884,13 @@ check revert output adding content1_missing_content1-untracked reverting content1_missing_content3-tracked adding content1_missing_content3-untracked - adding content1_missing_missing-tracked + reverting content1_missing_missing-tracked adding content1_missing_missing-untracked removing missing_content2_content2-tracked removing missing_content2_content3-tracked removing missing_content2_missing-tracked forgetting missing_missing_content3-tracked + forgetting missing_missing_missing-tracked Compare resulting directory with revert target. @@ -957,7 +970,6 @@ revert all files individually and check file not managed: content1_missing_content3-untracked ### revert for: content1_missing_missing-tracked - content1_missing_missing-tracked: no such file in rev * (glob) ### revert for: content1_missing_missing-untracked content1_missing_missing-untracked: no such file in rev * (glob) @@ -981,7 +993,6 @@ revert all files individually and check file not managed: missing_missing_content3-untracked ### revert for: missing_missing_missing-tracked - missing_missing_missing-tracked: no such file in rev * (glob) ### revert for: missing_missing_missing-untracked missing_missing_missing-untracked: no such file in rev * (glob) @@ -1075,7 +1086,6 @@ revert all files individually and check file not managed: missing_missing_content3-untracked ### revert for: missing_missing_missing-tracked - missing_missing_missing-tracked: no such file in rev * (glob) ### revert for: missing_missing_missing-untracked missing_missing_missing-untracked: no such file in rev * (glob)