ผมเริ่มต้นด้วยและฉันสงสัยเกี่ยวกับเวลาที่จะใช้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's Git ถูกสร้างขึ้นในยุค 00 สิ่งสุดท้ายที่คุณต้องการสำหรับงานสร้างที่คลุมเครือบางอย่างที่ทำงานมา 30 ปีก็ล้มเหลวทันทีเพราะมีคนตัดสินใจที่จะไปที่ทันสมัยด้วยระบบที่ผ่านการทดลองและทดสอบแล้ว