Mercurial > hg
view tests/test-issue1877.t @ 18316:f36375576ed5
filecache: create an entry in _filecache when __set__ is called for a missing one
Preserve the invariant that if P is a filecached property on X then
P in X.__dict__ => P in X._filecache.
Previously, it was possible for a filecached property to become out of sync
with the filesystem if it was set before getting it first, since the initial
filecacheentry was created in __get__.
Old behaviour:
repo.prop = x
repo.invalidate() # prop has no entry in _filecache, it's not removed
# from __dict__
repo.prop # returns x like before without checking with the
# filesystem
New:
repo.prop = x # an empty entry is created in _filecache
repo.invalidate() # prop is removed from __dict__
repo.prop # recreates prop
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Mon, 17 Dec 2012 15:25:45 +0200 |
parents | f2719b387380 |
children | ca275f7ec576 |
line wrap: on
line source
http://mercurial.selenic.com/bts/issue1877 $ hg init a $ cd a $ echo a > a $ hg add a $ hg ci -m 'a' $ echo b > a $ hg ci -m'b' $ hg up 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg book main $ hg book * main 0:cb9a9f314b8b $ echo c > c $ hg add c $ hg ci -m'c' created new head $ hg book * main 2:d36c0562f908 $ hg heads changeset: 2:d36c0562f908 bookmark: main tag: tip parent: 0:cb9a9f314b8b user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: c changeset: 1:1e6c11564562 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: b $ hg up 1e6c11564562 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg merge main 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg book main 2:d36c0562f908 $ hg ci -m'merge' $ hg book main 2:d36c0562f908 $ cd ..