If a checksummed file is deleted, we should still use redo-oob.
We were giving up and rebuilding the toplevel object, which did eventually rebuild our checksummed file, but then the file turned out to be identical to what it was before, so that nobody *else* who depended on it ended up getting rebuilt. So the results were indeterminate. Now we treat it as if its dirtiness is unknown, so we build it using redo-oob before building any of its dependencies.
This commit is contained in:
parent
f702417ef3
commit
e7f7119f2e
5 changed files with 35 additions and 6 deletions
|
|
@ -28,9 +28,16 @@ def dirty_deps(f, depth, max_changed):
|
|||
if not f.stamp:
|
||||
debug('%s-- DIRTY (no stamp)\n' % depth)
|
||||
return DIRTY
|
||||
if f.stamp != f.read_stamp():
|
||||
debug('%s-- DIRTY (mtime)\n' % depth)
|
||||
return DIRTY
|
||||
newstamp = f.read_stamp()
|
||||
if f.stamp != newstamp:
|
||||
if newstamp == state.STAMP_MISSING:
|
||||
debug('%s-- DIRTY (missing)\n' % depth)
|
||||
else:
|
||||
debug('%s-- DIRTY (mtime)\n' % depth)
|
||||
if f.csum:
|
||||
return [f]
|
||||
else:
|
||||
return DIRTY
|
||||
|
||||
must_build = []
|
||||
for mode,f2 in f.deps():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue