Mercurial > hg-stable
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 |