User-overridden targets stay overridden even if the last build failed.

Previously, if 'redo-ifchange foo' failed last time, then creating foo
manually wouldn't help; 'redo-ifchange foo' would still try to rebuild it.
But if the first run *did* create it, then manually overriding it *did*
work.

That inconsistency is pointless.  If the user creates it by hand, it doesn't
matter if it failed to build last time or not; the user wants it overridden.
So this way, something that can't build can at least be manually created as
a hack.
This commit is contained in:
Avery Pennarun 2011-03-30 23:33:39 -04:00
commit 0a5f424ef8

View file

@ -104,7 +104,6 @@ class BuildJob:
sf = self.sf
newstamp = sf.read_stamp()
if (sf.is_generated and
not sf.failed_runid and
newstamp != state.STAMP_MISSING and
(sf.stamp != newstamp or sf.is_override)):
state.warn_override(_nice(t))