Don't set_checked() on is_override files.
If a file is overridden and then overridden again, this caused us to rebuild only the first thing that depends on it, but not any subsequent things, which is a pretty serious bug. It turned out that t/350-deps-forget is already supposed to test this, but I had cleverly encoded the wrong behaviour into the expected results in the table-driven test. I blame lack of sleep. Anyway, I fixed the test, which made it fail, and then fixed the code, which made it pass.
This commit is contained in:
parent
686c381109
commit
174a093dc5
2 changed files with 12 additions and 13 deletions
|
|
@ -165,11 +165,10 @@ class _BuildJob(object):
|
|||
warn('%s - old: %r\n' % (_nice(t), sf.stamp))
|
||||
warn('%s - new: %r\n' % (_nice(t), newstamp))
|
||||
sf.set_override()
|
||||
sf.set_checked()
|
||||
sf.save()
|
||||
return self._finalize(0)
|
||||
# fall through and treat it the same as a static file
|
||||
if (os.path.exists(t) and not os.path.isdir(t + '/.')
|
||||
and not sf.is_generated):
|
||||
and (sf.is_override or not sf.is_generated)):
|
||||
# an existing source file that was not generated by us.
|
||||
# This step is mentioned by djb in his notes.
|
||||
# For example, a rule called default.c.do could be used to try
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue