[PATCH 8 of 8 STABLE RFC] largefiles: show status for files added on another branch correctly
foozy at lares.dti.ne.jp
Fri Feb 17 10:07:34 CST 2012
# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1329494573 -32400
# Branch stable
# Node ID cfd96890bca019419355b3968899df9b3ae73148
# Parent f02f94342c38f4e26cf707f98e6a04e58fa52fd3
largefiles: show status for files added on another branch correctly
!!!! THIS PATCH IS JUST FOR RFC !!!!
current implementation fails with tests added by this patch.
'inctx()' defined in 'lfiles_repo.status()' can't examines whether
specified directory is related to the context or not.
I think that introducing 'dirs()' like as one of 'dirstate' to
'changectx' can resolve this problem.
But there is performance problem:
- if 'changectx.dirs' is built at manifest build time of it, cost
of building it up is requested to all 'changectx.manifest' users.
but scan of manifest is only once.
- if 'changectx.dirs' is built at required time of it, cost of
building it up is requested only to 'changectx.dirs' users. but
scan of manifest is twice ("manifest reading in", and "build
to limit performance impact scope, the later seems to be better, does
or any other good solutions ?
BTW, why is 'ctx[file]' in 'inctx()' not 'file in ctx.manifest()' ?
for removed files ?
even if so, removed file seems to be detected by comparison between
manifest of contexts in 'localrepository.status()' (when this patch
series is applied).
diff -r f02f94342c38 -r cfd96890bca0 tests/test-largefiles.t
--- a/tests/test-largefiles.t Sat Feb 18 01:02:53 2012 +0900
+++ b/tests/test-largefiles.t Sat Feb 18 01:02:53 2012 +0900
@@ -1079,11 +1079,16 @@
$ hg status -A --rev . --rev 4 another/e.txt
+ $ hg status -A --rev 4 another
+ R another/e.txt
$ hg status -A --rev 4 --rev . another
$ hg status -A --rev . --rev 4 another
+ $ hg status -A --rev 4 sub/a.txt another
+ R another/e.txt
+ C sub/a.txt
$ hg status -A --rev 4 --rev . sub/a.txt another
More information about the Mercurial-devel