Я початківець з, make
і мені цікаво, коли використовувати make clean
.
Один колега сказав мені, що додаткові версії з make
використанням базуються на часових позначках файлів. Отже, якщо ви перевірите стару версію файлу у своєму VCS, у нього буде "стара" часова мітка, і вона буде позначена як "не потрібно перекомпілювати цей файл". Тоді цей файл не буде включений до наступної збірки.
За словами того самого колеги, це було б приводом для використання make clean
.
У будь-якому випадку, я приблизно отримав відповідь на питання "коли використовувати make clean
" з інших питань StackExchange, але моє інше питання:
Чому інкрементні побудови, використовуючи, наприклад,
make
покладаються на часові позначки файлів, а не на SHA-1? Наприклад, Git показує, що ми можемо успішно визначити, чи був файл змінений за допомогою SHA-1.
Це для питань швидкості?
make
програмне забезпечення, то його програмне забезпечення не зламається, однак, make
у нових версіях докладається зусиль для зворотної сумісності. Зміна основної поведінки без поважних причин - це навпаки. А дати показують, чому спочатку не було застосовано SHA-1, або чому не було легко переоснастити його, коли він став доступним ( make
тоді вже було десятиліттям).
make
було створено в 70-х роках. SHA-1 був створений у 90-х. Git був створений у 00-х. Останнє, що ви хочете, - це те, що деякі незрозумілі конструкції, які працювали протягом 30 років, раптом провалилися, тому що хтось вирішив перейти все сучасне із випробуваною системою.