ส่วนใหญ่มันเป็นความชอบส่วนตัว
ฉันติดตามทุกสิ่งที่ฉันทำเพื่อโครงการใน Git โดยเฉพาะอย่างยิ่งตั้งแต่ Git จัดการไฟล์ประเภทส่วนใหญ่แม้แต่ไบนารีอย่างมีประสิทธิภาพเพียงพอ (แทนเรื่องไร้สาระของ Altium SVN ในตัว)
หนึ่งในเหตุผลหลักที่ฉันควรทำคือลูกค้าของฉันไม่ได้รู้สึกว่า Dropbox ปลอดภัยเพียงพอและฉันต้องการระบบสำรองที่ฉันสามารถเข้าถึงได้ทั่วโลกพร้อมกับบริบทการกำหนดเวอร์ชันในสิ่งที่ฉันทำ ดังนั้นฉันจึงตั้งค่าเซิร์ฟเวอร์ Git ส่วนตัวและระบบสำรองข้อมูลที่เข้ารหัสและใช้งานได้ดี บอร์ด, แผนงาน, รหัส, เอกสาร, รายงาน, การดัดแปลงด้วยตนเอง, ทุกอย่างถูกติดตาม
ปกติแล้วฉันจะสร้าง aa Repository สำหรับฮาร์ดแวร์หนึ่งสำหรับซอฟต์แวร์และหนึ่งสำหรับเฟิร์มแวร์ถ้ามันเป็นโครงการขนาดใหญ่อาจใช้เวลานาน แต่สำหรับโครงการบริการขนาดเล็กตัวอย่างหรือการทดลองเล็ก ๆ น้อย ๆ ฉันมักจะใส่ไว้ในที่เก็บเดียวตั้งแต่ผล ความโกลาหลจะไม่ใหญ่
ใน Git คุณสามารถใช้ที่เก็บย่อยเช่นกันเพื่อรวมเฟิร์มแวร์เข้ากับโครงการฮาร์ดแวร์หรือวิธีอื่น ๆ แม้ว่าพวกเขาจะเป็นที่เก็บข้อมูลที่ถูกจัดการแยกต่างหาก
สำหรับโครงการขนาดใหญ่ฉันมักใช้ระบบติดตามบั๊กเพื่อติดตามปัญหาและความละเอียดอีกครั้งสำหรับ HW และ SW ตั๊กแตนตำข้าวเป็นสิ่งที่ดีที่สามารถใช้งานได้ฟรี
สำหรับการแก้ไขฮาร์ดแวร์ที่ฉันสร้าง Gerbers หรืออะไรก็ตามที่คุณติดแท็กด้วย Git Hash สำหรับการแก้ไขนั้น Gerbers เหล่านั้นจะเป็นสิ่งที่แยก "รุ่นเก่า" ในโฟลเดอร์โดย R01, 02 เป็นต้นเนื่องจากคุณไม่ต้องการ สร้างใหม่ตลอดเวลา แต่เป็นไฟล์ที่เกิดขึ้นดังนั้นไม่ควรเป็นเวอร์ชั่นใน Git เอง (เพราะซอฟต์แวร์การออกแบบของคุณควรถูกกำหนดด้วยการสร้างเนื้อหาการผลิตหรืออื่น ๆ ... )
หากมีบางสิ่งที่น่าสนใจใน R01 ที่ไม่ได้เกิดขึ้นใน R02 (หรือวิธีอื่น ๆ ) คุณมีแฮชของ Git Hash สองตัวซึ่งคุณสามารถเปรียบเทียบไฟล์ต้นฉบับได้ไม่ต้องกังวล
หมายเหตุสุดท้ายตัวอย่างหนึ่งแนวคิดของโครงการจะมีที่เก็บฮาร์ดแวร์ซึ่งโฮสต์ไฟล์ "BoardPinout.h" ด้วย ไฟล์นี้ถูกรวมเป็นไฟล์เวอร์ชันระยะไกลในที่เก็บเฟิร์มแวร์ซึ่งมีไฟล์คำจำกัดความอินเทอร์เฟซไม่กี่ไฟล์ที่รวมอยู่ในที่เก็บซอฟต์แวร์จากระยะไกล
ความหมายทุกครั้งที่ฉันเปลี่ยนสัญญาณไม่กี่ตัวโดยไม่ต้องแก้ไขฟังก์ชั่นในวงกว้างโครงการ HW "อัพเดท" BoardPinout ซึ่งสามารถอัปเดตและใช้งานได้ในเฟิร์มแวร์และอื่น ๆ