comparison tests/test-largefiles.t @ 16281:d8cc67114dc3 stable

largefiles: suppress unexpected warning of 'hg status' for removed files original implementation queries whether specified pattern is related or not to largefiles, to target context. but changectx/workingctx returns False about relationship with files marked as removed. So, 'hg status' with 'file pattern' for removed file shows unexpected warning message in below process: 1. 'tostandin()' returns non-STANDIN filename for removed file, because changectx/workingctx returns False about relationship with it 2. 'match.files()' contains non-STANDIN filename, which is already removed from working directory 3. 'dirstate.walk()' invoked via 'localrepository.status()' treats non-STANDIN filename as bad filename, because there is no entry for it in dirstate: only STANDIN is managed in dirstate 4. 'dirstate.walk()' invokes 'match.bad()', which is defined in 'localrepository.status()' as 'bad()' 5. 'bad()' shows warning message for non-STANDIN, because it is not related to source context: only STANDIN is related to it this patch queries to dirstate instead of changectxt/workingctx, because dirstate returns expected result for removed files. 'match.files()' is used by 'localrepository.status()' only in 'working' case, so this patched code also works correctly in non-'working' case.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 22 Mar 2012 23:58:47 +0900
parents f346de4dff57
children 50247a7a9983
comparison
equal deleted inserted replaced
16280:0806823370d8 16281:d8cc67114dc3
66 large22 66 large22
67 67
68 Remove both largefiles and normal files. 68 Remove both largefiles and normal files.
69 69
70 $ hg remove normal1 large1 70 $ hg remove normal1 large1
71 $ hg status large1
72 R large1
71 $ hg commit -m "remove files" 73 $ hg commit -m "remove files"
72 Invoking status precommit hook 74 Invoking status precommit hook
73 R large1 75 R large1
74 R normal1 76 R normal1
75 $ ls 77 $ ls