2015-08-17 2 views
5

In determinate situazioni, desidero sapere molto rapidamente se un determinato file di destinazione è aggiornato, ovvero se lo si genera o meno con shake, si eseguirà una qualsiasi delle regole che contribuisce in modo transnazionale al target.Come verificare se il shake in esecuzione ricostruirebbe un target (senza effettivamente provarlo a crearlo)?

Qual è il modo migliore per ottenere questo con scossa?

La mia domanda è in qualche modo correlata a Shake: Signal whether anything had to be rebuilt at all. Tuttavia, non voglio eseguire la build effettiva perché non voglio toccare nessuno dei miei prodotti di build.

risposta

2

In Shake quali file sono "sporchi" è un po 'difficile da determinare. Se il tuo file di interesse dipende da eventuali oracoli (anche in modo transitorio), il file è considerato "sporco", dal momento che gli oracoli sono sempre sporchi. Tuttavia, se Shake riesegue le regole/oracoli dipendenti e non cambiano, a quel punto viene considerato di nuovo pulito. Di conseguenza, la maggior parte delle regole è considerata sporca prima che tutto sia stato eseguito, e solo dopo aver eseguito alcune regole diventa pulito.

Ho raised a ticket per fare qualcosa di meglio. Ad una opzione verrà assegnata una regola di destinazione, per dire quali foglie dipendono da essa e sono sporche - questo elencherebbe gli oracoli (che ragionevolmente si aspettano di non cambiare) e se elenca tutti i file sorgente, ci si aspetterebbe che si ricostruisse.

(sarei ben accetto se qualcuno ha qualche buona idea.)