Mercurial > hg
annotate tests/bzr-definitions @ 29917:f32f8bf5dc4c
streamclone: force @filecache properties to be reloaded from file
Before this patch, consumev1() invokes repo.invalidate() after closing
transaction, to force @filecache properties to be reloaded from files
at next access, because streamclone writes data into files directly.
But this doesn't work as expected in the case below:
1. at closing transaction, repo._refreshfilecachestats() refreshes
file stat of each @filecache properties with streamclone-ed files
This means that in-memory properties are treated as valid.
2. but streamclone doesn't changes in-memory properties
This means that in-memory properties are actually invalid.
3. repo.invalidate() just forces to examine file stat of @filecache
properties at the first access after it
Such examination should concludes that reloading from file isn't
needed, because file stat was already refreshed at (1).
Therefore, invalid in-memory cached properties (2) are
unintentionally treated as valid (1).
This patch invokes repo.invalidate() with clearfilecache=True, to
force @filecache properties to be reloaded from file at next access.
BTW, it is accidental that repo.invalidate() without
clearfilecache=True in streamclone case seems to work as expected
before this patch.
If transaction is started via "filtered repo" object,
repo._refreshfilecachestats() tries to refresh file stat of each
@filecache properties on "filtered repo" object, even though all of
them are stored into "unfiltered repo" object.
In this case, repo._refreshfilecachestats() does nothing
unintentionally, but this unexpected behavior causes reloading
@filecache properties after repo.invalidate().
This is reason why this patch should be applied before making
_refreshfilecachestats() correctly refresh file stat of @filecache
properties.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 12 Sep 2016 03:06:28 +0900 |
parents | 89872688893f |
children | 7a88643bc0ef |
rev | line source |
---|---|
7053 | 1 # this file holds the definitions that are used in various bzr tests |
2 | |
9042
95046688f80f
tests: remove more instances of export FOO=bar bashism
Brodie Rao <me+hg@dackz.net>
parents:
8523
diff
changeset
|
3 TERM=dumb; export TERM |
7053 | 4 echo '[extensions]' >> $HGRCPATH |
5 echo 'convert = ' >> $HGRCPATH | |
6 | |
7 glog() | |
8 { | |
20117
aa9385f983fa
tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents:
16060
diff
changeset
|
9 hg log -G --template '{rev}@{branch} "{desc|firstline}" files: {files}\n' "$@" |
7053 | 10 } |
11 | |
12 manifest() | |
13 { | |
14 echo "% manifest of $2" | |
15 hg -R $1 manifest -v -r $2 | |
16 } |