Mercurial > hg
view tests/test-1993.t @ 23603:d74eb8d477d5
memctx: calculate manifest more efficiently
Before this patch, "memctx._manifest" updates all entries in the
(parent) manifest. But this is inefficiency, because almost all files
may be clean in that context.
On the other hand, just updating entries for changed "files" specified
at construction causes unexpected abortion, when there is at least one
newly removed file (see issue4470 for detail).
To calculate manifest more efficiently, this patch replaces
"pman.iteritems()" for the loop by "self._status.modified" to avoid
updating entries for clean or removed files
Examination of removal is also omitted, because removed files aren't
treated in this loop (= "self[f]" returns not None always).
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 19 Dec 2014 00:11:56 +0900 |
parents | f2719b387380 |
children |
line wrap: on
line source
$ hg init a $ cd a $ echo a > a $ hg ci -Am0 adding a $ echo b > b $ hg ci -Am1 adding b $ hg tag -r0 default warning: tag default conflicts with existing branch name $ hg log changeset: 2:30a83d1e4a1e tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: Added tag default for changeset f7b1eb17ad24 changeset: 1:925d80f479bb user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: 1 changeset: 0:f7b1eb17ad24 tag: default user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: 0 $ hg update 'tag(default)' 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg parents changeset: 0:f7b1eb17ad24 tag: default user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: 0 $ hg update 'branch(default)' 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg parents changeset: 2:30a83d1e4a1e tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: Added tag default for changeset f7b1eb17ad24 $ cd ..