view tests/test-propertycache.py.out @ 39110:f0c2653ca706

merge: add tests for commit with no content change It isn't easy to say when to reuse the p1 manifest. Basically, that's only when wctx.files() is empty, but we need to know that wctx.files() is not the same as repo['.'].files() after the commit. This patch adds several examples of commits with empty ctx/wctx.files(). I don't think this is exhaustive, but it contains at least one failure mode in which a converted repo result in a different hash. I also note that the manifest revlog does NOT follow the DAG shape of the changelog since p1 manifest is reused if wctx.files() is empty even at merge. I don't know whether it is intentional or not, but it's the behavior since 2011, 301725c3df9a "localrepo: reuse parent manifest in commitctx if no files have changed."
author Yuya Nishihara <yuya@tcha.org>
date Sun, 12 Aug 2018 18:44:42 +0900
parents 9789670992d6
children
line wrap: on
line source


=== property cache ===

calllog: []
cached value (unfiltered): NOCACHE

= first access on unfiltered, should do a call
access: 0
calllog: [0]
cached value (unfiltered): 0

= second access on unfiltered, should not do call
access 0
calllog: [0]
cached value (unfiltered): 0

= first access on "visible" view, should do a call
cached value ("visible" view): NOCACHE
access: 7
calllog: [0, 7]
cached value (unfiltered): 0
cached value ("visible" view): 7

= second access on "visible view", should not do call
access: 7
calllog: [0, 7]
cached value (unfiltered): 0
cached value ("visible" view): 7

= no effect on other view
cached value ("immutable" view): NOCACHE
access: 9
calllog: [0, 7, 9]
cached value (unfiltered): 0
cached value ("visible" view): 7
cached value ("immutable" view): 9


=== unfiltered property cache ===

unficalllog: []
cached value (unfiltered):       NOCACHE
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE

= first access on unfiltered, should do a call
access (unfiltered): 100
unficalllog: [100]
cached value (unfiltered):       100

= second access on unfiltered, should not do call
access (unfiltered): 100
unficalllog: [100]
cached value (unfiltered):       100

= access on view should use the unfiltered cache
access (unfiltered):       100
access ("visible" view):   100
access ("immutable" view): 100
unficalllog: [100]
cached value (unfiltered):       100
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE

= even if we clear the unfiltered cache
cached value (unfiltered):       NOCACHE
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE
unficalllog: [100]
access ("visible" view):   100
unficalllog: [100, 100]
cached value (unfiltered):       100
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE
access ("immutable" view): 100
unficalllog: [100, 100]
cached value (unfiltered):       100
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE
access (unfiltered):       100
unficalllog: [100, 100]
cached value (unfiltered):       100
cached value ("visible" view):   NOCACHE
cached value ("immutable" view): NOCACHE