Subject: Re: Potentially unnecessary redoing of targets

From: Niklas Böhm <[email-masked]>
Date: Tue, 13 Jan 2026 20:04:40 +0100

Hi again,

alright, I think I see the point now.  I agree that the behavior would 
definitely not seem intuitive and I suppose I am just not thinking of 
some corner cases where this could be very confusing.

My point is that `2.do` specifically did not change; hence the 
dependencies should stay the same, depending only on whether `1` changes 
or not.  If the hash stays the same, then there is no need to even start 
the execution of `2.do`.  In case the contents of `1` do change then all 
bets are off, so I agree that it does not make sense to change the 
behavior of redo.

Personally, I actually think that it would be nice to have 
`redo-ifchange 1; redo-ifchange 2` and only `redo-ifchange 2` work the 
same, although that would also lead to trouble when you rely on one of 
those to produce files that are not properly tracked by redo.

In any case, thanks for the discussion and explanations.

Cheers
Nik