Our build uses hardlinks to implement copies in many locations. Our bots use git reset when syncing repositories, which can interfere with hardlinks in ways that cause ninja to believe copied files are dirty when that isn't the case. This is discussed in more detail in issue 330461, issue 642711, and issue 740301.
sdefresne added https://codereview.chromium.org/2444403003/ last year to deal with this on the downstream iOS bots. I recently landed https://chromium-review.googlesource.com/c/577909/ to deal with it on upstream bots. We should generalize it, likely to the bot_update recipe module, to deal with it on all platforms.
Comment 1 by bugdroid1@chromium.org
, Jul 21 2017