redo-ifchange: unstamp() was in the wrong spot, causing unnecessary rebuilds.
redo-ifchange: unstamp() was in the wrong spot, causing unnecessary rebuilds.

dirty_deps() changed its meaning now that we also have to check
state.isbuilt().  Now, just because dirty_deps() returns true doesn't mean
that the file should be unstamped (which forces a rebuild); this might have
happened because of state.isbuilt, which means someone already *did* do a
rebuild.

If we get past state.isbuilt() and into looking at the children, however,
and one of the children is dirty, then we should definitely unstamp the
current target.

dinkelk/redo-python,rowhit/redo,apenwarr/redo,pombredanne/redo,dinkelk/redo-python,rowhit/redo,apenwarr/redo,pombredanne/redo,apenwarr/redo,apenwarr/redo,rowhit/redo,rowhit/redo,dinkelk/redo-python,dinkelk/redo-python,pombredanne/redo,pombredanne/redo