mirror of https://github.com/sbt/sbt.git
@olegych reported in #4721 that play projects would get stuck in a strange loop where modifying any source file would cause that source file to always be recompiled every time a build was triggered regardless of whether or not it was modified. This was because the play project sets custom watchSources (using the legacy api) that overlap with the fileInputs. There were two parts to this fix: 1) When detecting an event, find if any of the dynamic inputs that cover the glob use a hash. If so, these are file inputs so we want to update the hash for the path, not the last modified time. 2) Only write hashes into the persistent file stamp cache. Computing the last modified time is much cheaper than the hash so it makes sense to avoid ever caching last modified times. I wrote a scripted test that fails if Continuous writes a last modified time into the file stamp cache instead of a hash. I also verified manually that a sample play project no longer exhibits the weird recompilation behavior. Fixes #4721 |
||
|---|---|---|
| .. | ||
| src | ||
| NOTICE | ||