Nous l'avons tous entendu - "essayez une construction propre et voyez si cela fonctionne". Souvent, les erreurs d'exécution étranges disparaissent après une reconstruction. Cela m'a fait réfléchir - correctement les dépendances de suivi est le travail d'un système de construction.Les erreurs d'exécution qui disparaissent lors de la reconstruction indiquent-elles des bogues dans le système de construction?
Est-ce que ces erreurs d'exécution par définition bogues dans un système de construction - que ce soit make, ou msbuild, ou n'importe quel. Ou en d'autres termes, si une construction propre et une construction normale donnent des résultats différents, est-ce par définition un bug dans le système de construction?
Edit: Je suppose the build environment is sane - ce qui signifie que lorsque les fichiers sont mis à jour, leur horodatage « Dernière modification » devient plus récent (au lieu d'un horodatage plus ou le même). En fait, tous les systèmes de contrôle de version que je connais respectent cette règle, car sinon, ils briseraient les systèmes de construction comme Make, qui dépendent des horodatages pour suivre quels fichiers doivent être mis à jour.
Disons qu'il y a un problème m avec votre système. Le problème est résolu en annulant l'un des modules sources. Vous faites une construction régulière. Il voit que l'horodatage du module compilé est après l'horodatage du module source, donc il ne recompile pas ce module. Vous exécutez le système construit et il a toujours le problème. Vous exécutez une construction propre et chaque module est construit. Maintenant, le problème est résolu. –
Git définit l'horodatage à l'heure actuelle lors du remplacement d'un fichier, en particulier pour résoudre ce problème. Je pense que tous les systèmes de contrôle de version le font de cette façon. http://stackoverflow.com/a/2179876/492336 – sashoalm
Je ne fais que décrire un scénario qui m'est arrivé. –