Ich bin ein Anfänger mit make
und ich frage mich, wann ich verwenden soll make clean
.
Ein Kollege sagte mir, dass inkrementelle Builds mit make
auf den Zeitstempeln der Dateien basieren. Wenn Sie also eine alte Version einer Datei in Ihrem VCS auschecken, hat sie einen "alten" Zeitstempel und wird als "keine Notwendigkeit zum erneuten Kompilieren dieser Datei" markiert. Dann würde diese Datei nicht in den nächsten Build aufgenommen.
Laut demselben Kollegen wäre dies ein Grund zur Verwendung make clean
.
Wie auch immer, ich habe die Antwort auf die Frage "Wann verwenden make clean
?" Grob von anderen StackExchange-Fragen erhalten, aber meine andere Frage lautet dann:
Warum
make
stützen sich inkrementelle Builds mithilfe von Dateizeitstempeln und nicht beispielsweise auf SHA-1? Git zeigt zum Beispiel, dass wir erfolgreich feststellen können, ob eine Datei mit dem SHA-1 geändert wurde.
Ist es für Geschwindigkeitsprobleme?
make
wird Ihre Software nicht kaputt gehen, make
bemüht sich jedoch eher um Abwärtskompatibilität in neuen Versionen. Das Ändern des Kernverhaltens ohne guten Grund ist so ziemlich das Gegenteil davon. Und die Daten zeigen, warum es ursprünglich nicht für die Verwendung von SHA-1 hergestellt wurde oder warum es nicht einfach war, es nachzurüsten, als es verfügbar wurde (war zu diesem make
Zeitpunkt bereits Jahrzehnte alt).
make
wurde in den 70er Jahren erstellt. SHA-1 wurde in den 90er Jahren erstellt. Git wurde in 00er erstellt. Das Letzte, was Sie wollen, ist, dass einige obskure Builds, die 30 Jahre lang funktionierten, plötzlich versagten, weil sich jemand entschied, mit einem bewährten System ganz modern zu werden.