ระบบควบคุมเวอร์ชันที่ดีสำหรับโครงการฮาร์ดแวร์คืออะไร มีรหัสเทียบเท่า Google, CVS และ SVN หรือไม่ ระบบควบคุมเวอร์ชันดังกล่าวเหมาะสมกับโครงการฮาร์ดแวร์ที่เกี่ยวข้องกับไฟล์ PCB, แผนงานหรือไม่ (แม้แต่รหัสเฟิร์มแวร์)?
ระบบควบคุมเวอร์ชันที่ดีสำหรับโครงการฮาร์ดแวร์คืออะไร มีรหัสเทียบเท่า Google, CVS และ SVN หรือไม่ ระบบควบคุมเวอร์ชันดังกล่าวเหมาะสมกับโครงการฮาร์ดแวร์ที่เกี่ยวข้องกับไฟล์ PCB, แผนงานหรือไม่ (แม้แต่รหัสเฟิร์มแวร์)?
คำตอบ:
โดยทั่วไประบบ VCS ทั้งหมดสามารถจัดการไฟล์ข้อความและไบนารีได้อย่างสง่างาม แน่นอนคุณไม่สามารถรวมเลขฐานสอง
ดังนั้นตราบใดที่คุณไม่ได้ใช้สิ่งที่ล้าสมัยเช่น CVS คุณจะดีกับระบบใด ๆ
ฉันเคยใช้การโค่นล้มกับ Altium มาก่อน มันทำงานได้สำเร็จ แต่ในเวลานั้นการขาดเครื่องมือ diff ทำให้มันมีประโยชน์น้อยกว่าการควบคุมเวอร์ชันด้วยรหัส ฉันยังคิดว่ามันคุ้มค่าที่จะทำแม้จะไม่มีความสามารถที่ต่างออกไป
สำหรับเฟิร์มแวร์การโค่นล้มหรือ Git นั้นยอดเยี่ยมมาก หากคุณไม่เคยใช้ Git มาก่อนลองโค่นล้มก่อน (แม้ว่ามันจะทำให้การเรียนรู้ Git ยากขึ้นในภายหลัง)
Altium เพิ่งเปิดตัวเครื่องมือ diff สำหรับ schematics และ PCBs ดังนั้นฉันจึงคาดว่าการโค่นล้มจะยอดเยี่ยมมาก modulo ความวิกลจริตตามปกติที่ผู้ขาย EDA จัดการเพื่อสร้างผลิตภัณฑ์ของตน
ฉันตั้งใจจะลองใช้เครื่องมือ diff ใหม่ ถ้าฉันทำฉันจะพยายามจำให้โพสต์ลิงก์ไปที่ repo ที่นี่เป็นตัวอย่าง
ปรับปรุง
ฉันลองสิ่งนี้และฉันต้องบอกว่าฉันรู้สึกผิดหวังเล็กน้อยกับเครื่องมือ Altium diff มันใช้งานได้ แต่การเปลี่ยนแปลงระหว่าง revs ของบอร์ดนั้นสำคัญพอที่จะไม่เป็นประโยชน์อย่างน้อยสำหรับฉัน เมื่อเห็นสิ่งนี้ฉันตัดสินใจที่จะลืมเครื่องมือ diff และใช้ Github นี่คือธุรกรรมซื้อคืนหากคุณสนใจ: https://github.com/rascalmicro/pcb
svn cp trunk/ tags/releaseX/
เพื่อถ่ายภาพรวมของการเปิดตัว จากนั้นคุณสามารถแตกต่าง releaseX / ไฟล์และ releaseY / file หากคุณต้องการเห็นการเปลี่ยนแปลงระหว่างการเผยแพร่หรือคุณสามารถเรียกดูบันทึกการกระทำและดูการเปลี่ยนแปลงแต่ละรายการ สาขาช่วยทำให้เกิดการกระทำที่เป็นโมดูล
ฉันใช้เซิร์ฟเวอร์ VisualSVN + TortoiseSVN และทำงานได้ดี
ฉันใช้ Google Code เพื่อโฮสต์Super OSDโครงการอิเล็กทรอนิกส์ของฉัน
ฉันใช้ชุด gEDA เพื่อจัดการแผนงานและ PCB ของฉันเท่านั้น มีประโยชน์ gEDA สร้างไฟล์ข้อความ (ซึ่งส่วนใหญ่เป็นมนุษย์อ่านได้แม้ว่ามันจะยากที่จะตีความพวกเขา) สำหรับแผนงานแทนที่จะเป็นไบนารี blobs เช่นอีเกิล ตัวอย่างเช่นนี่คือความแตกต่างระหว่างสองแผนงานหนึ่งอันประมาณ 5 วันและอีกหนึ่งฉันเพิ่งผลัก มันไม่มีประโยชน์อย่างยิ่งเพราะคุณไม่สามารถเห็นการเปลี่ยนแปลงในไฟล์ข้อความได้มากนัก แต่มันสามารถแสดงการเปลี่ยนแปลงสัมพัทธ์ได้เช่นการทำซ้ำครั้งใหญ่กับการเปลี่ยนแปลงองค์ประกอบเดียว
เคล็ดลับคือการใช้สิ่งที่ทำงานได้ดีกับไบนารี หากคุณใช้ไบนารีมากและแบ่งปันกับผู้อื่นอาจเป็นประโยชน์ในการใช้กลไกการล็อคไฟล์ไบนารี่เหล่านั้น เราพบปัญหามากมายเกี่ยวกับการใช้การโค่นล้มกับไฟล์ไบนารีและการแบ่งปันกับผู้อื่นที่เกิดขึ้นเนื่องจากการขาดซีแมนทิคล็อคและการเขียนทับ / รวมไฟล์ไบนารีเข้าด้วยกัน การเพิ่มกลไกการล็อคไฟล์เหล่านั้นจะลบข้อผิดพลาดของมนุษย์ในการสื่อสารกับผู้ที่แก้ไข / เปลี่ยนแปลงไฟล์ไบนารี
หากคุณไม่เคยใช้การควบคุมเวอร์ชันมาก่อนฉันแนะนำให้อ่านวิธีการทำงานต่าง ๆ และเลือกวิธีที่เหมาะสมกับความต้องการของคุณและ / หรือทีมงานของคุณ ระบบควบคุมเวอร์ชันแบบกระจายมอบประโยชน์มากมายเหนือระบบไคลเอนต์เซิร์ฟเวอร์ แต่มีแนวโน้มที่จะทำงานได้ซับซ้อนกว่า
ทำไมไม่ใช้เพียง Google Code หรือ SVN repo เช่นนี้เป็นระบบควบคุมการแก้ไข ไม่มีการใช้งานที่กำหนดไว้สำหรับมัน มันมีประโยชน์อย่างเหลือเชื่อสำหรับนักพัฒนาหลายคนและการตรวจสอบการเปลี่ยนแปลงในซอร์สโค้ด
ฉันเคยใช้การโค่นล้มกับ Altium มาก่อน
ฉันใช้ SVN กับการรวม Altium สำหรับการจับภาพวงจร: ทำงานได้ดี ฉันต้องบอกว่าโปรแกรมดู diff ดีกว่าไม่มีอะไรเลยเพราะไฟล์ SchDoc ของฉันเป็นแบบไบนารี่คือไม่สามารถเปรียบเทียบเป็นอย่างอื่นได้! ฉันใช้ไคลเอ็นต์ SVN ที่รวมอยู่ใน Altium Designer พร้อมกับ TortoiseSVN โดยไม่มีปัญหา ลูกค้าของ Altium มีข้อ จำกัด เล็กน้อยในแง่ของคุณสมบัติ SVN ฉันทำ "แท็ก" กับ Tortoise
ความคิดเห็นของฉันขึ้นอยู่กับ Altium Designer 10 build 27009 และรุ่น 13.1 build 27559
svn, hg และ git ทำงานได้ดี
ไม่ใช่ระบบควบคุมเวอร์ชันจริง แต่ Dropbox จัดการยังแก้ไขไฟล์และทำให้พวกเขาสามารถใช้งานได้สำหรับคนที่แตกต่างกันในระบบปฏิบัติการที่แตกต่างกัน - ระบบควบคุมเวอร์ชันแมนส์ไม่ดี;)
ผมเป็นคนที่ Faire ชงในซานมาเทโอนี้วันหยุดสุดสัปดาห์ที่ผ่านมาและได้พบกับตัวแทนจากใหม่ (ให้ฉัน) บริษัท ที่เรียกว่าขึ้น Verter โดยพื้นฐานแล้วพวกเขากำลังสร้างเครื่องมือ CAD ไฟฟ้าที่ทำงานใน "คลาวด์" (เช่นในเบราว์เซอร์ของคุณ) และสร้างแนวคิดเกี่ยวกับการทำงานร่วมกันดังนั้นควรจัดการกับการผสาน / การกระจายและการกำหนดเวอร์ชันตามปกติ
ฉันยังไม่ได้ลองเลยและมันก็ดูเป็นสีเขียวเล็กน้อย (อย่าคิดว่าคุณสามารถทำเลย์เอาต์ PCB ได้จริง ๆ แค่แผนผัง) แต่มันเป็นเรื่องที่น่าสนใจ พวกเขาอ้างว่าพวกเขาสามารถนำเข้าไฟล์ Eagle ซึ่งเป็นข้อดี
ฉันยังได้พูดคุยกับตัวแทนของ Eagle ที่เต็นท์ Element 14 และพวกเขาชี้ให้เห็นว่าพวกเขากำลังจะย้ายไปอยู่ในรูปแบบ XML ซึ่งเป็นขั้นตอนที่ยิ่งใหญ่ที่จะทำให้การกำหนดเวอร์ชันของแผนงานและเค้าโครงมีความเป็นไปได้มากขึ้น ... !
ข่าวดีสำหรับ Altium!
Altium เพิ่มการสนับสนุนการควบคุมเวอร์ชัน Gitเช่นคุณสามารถเห็นในบันทึกประจำรุ่นสำหรับโปรแกรมออกแบบของ Altium
หากต้องการทราบวิธีการใช้งานคุณสามารถปฏิบัติตามคำแนะนำการใช้การควบคุมเวอร์ชันได้
นี่เป็นคำถามที่ดีมาก เนื่องจาก FPGA จัดอยู่ในหมวดหมู่ของ "ฮาร์ดแวร์" คุณอาจสนใจโครงสร้างโครงการที่เป็นมิตรที่ควบคุมเวอร์ชันที่ฉันเสนอสำหรับโครงการ FPGA:
http://www.saardrimer.com/fpgaproj/
ฉันคิดว่าความคิดและแนวคิดสามารถนำไปใช้กับโครงการฮาร์ดแวร์อื่น ๆ และโดยทั่วไปได้อย่างง่ายดาย (ความเห็นเกี่ยวกับข้อเสนอนี้ยินดีมาก btw.)
หลีกเลี่ยงการคอมไพล์ มันไม่สามารถจัดการกับที่เก็บข้อมูลขนาดใหญ่ได้ดี และที่เก็บของคุณจะมีขนาดใหญ่เว้นแต่คุณ
ฉันใช้ Mercurial (HG) repos หลายรายการ (หนึ่งรายการต่อโครงการ) สำหรับเรื่องนี้ แต่เนื่องจากระบบควบคุมเวอร์ชันส่วนใหญ่จะได้รับประสบการณ์ repos จะมีขนาดใหญ่ขึ้นเรื่อย ๆ
ฉันต้องการเพิ่มลิงค์ไปยัง HgInit ซึ่งเป็นการแนะนำ Mercurial ที่ยอดเยี่ยมหากคุณตัดสินใจที่จะไปเส้นทางนั้น ส่วนตัวผมใช้ Git แต่มันคล้ายกันมากในแง่ของสถาปัตยกรรม (ทั้งคู่เป็นระบบควบคุมเวอร์ชันแบบกระจาย) ลักษณะการกระจายของพวกเขาทำให้พวกเขายอดเยี่ยมสำหรับการทำงานในทีม "กระจาย" ที่ดี :)
OpenPLM ดูเหมือนจะเสนอแง่มุมบางอย่างของสิ่งที่คุณกำลังมองหาถึงแม้ว่ามันจะดูเหมือนไม่ได้อยู่ในการพัฒนาอย่างแข็งขัน ( http://www.openplm.org/trac/discussion/topic/93 )
อาจดูได้ที่https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006 ("ERPNext: Git / Github สำหรับ ฮาร์ดแวร์โอเพ่นซอร์ส - เรียกผู้ใช้รุ่นเบต้า ")
นี่เป็นสิ่งที่ควรพิจารณาสำหรับคำอธิบายเกี่ยวกับฮาร์ดแวร์ของ ASCII เมื่อคำอธิบายที่มนุษย์สามารถอ่านได้สำหรับฮาร์ดแวร์นั้นถูกนำมาใช้กับระบบควบคุมการแก้ไขที่ทันสมัย (RCS) ที่ใช้งานได้ดี เลย์เอาต์วงจรมักจะอธิบายอย่างสมบูรณ์โดยไฟล์ Gerber, UML อธิบายส่วนอื่น ๆ ซึ่งเป็นคำอธิบาย ascii อย่างเต็มที่ มีรูปแบบ ascii มาตรฐานน้อยกว่าสำหรับ schematics เค้าโครงทางกลและอื่น ๆ (KiCAD เป็นต้น)
การยอมรับเป็นเรื่องที่ปฏิบัติได้จริงมันต้องการข้อกำหนดที่เป็นที่ยอมรับสำหรับการควบคุมการแก้ไขที่ดีรวมถึงความแตกต่างที่มีความหมาย ซึ่งมักหมายถึงการยกเลิก Word, Excel, PowerPoint และอื่น ๆ ข้อโต้แย้งที่ยากมากต่อผู้จัดการและ MBAs แต่อุตสาหกรรมที่มีการควบคุมอย่างเช่นอุปกรณ์การแพทย์การบินและการทหารนั้นต้องการการควบคุมการแก้ไขที่ดี
ตามที่คนอื่น ๆ ได้ชี้ให้เห็น RCS ที่ทันสมัยส่วนใหญ่จะแก้ไขการควบคุมไฟล์ไบนารีซึ่งมีประโยชน์มากสำหรับการเก็บถาวรและการระบุรุ่น - แต่ระบบการจัดการเอกสารอิเล็กทรอนิกส์ใด ๆ (EDMS), Agile เป็นต้นสามารถกำหนดหมายเลขการแก้ไขให้กับไบนารีโดยพลการ น่าเบื่อ
แม้ว่ามันจะไม่ฟรีและแทบจะไม่มีข้อผิดพลาด แต่ Altium vault ก็ทำงานได้อย่างดีเยี่ยม ฉันสามารถย้อนกลับไปยังจุดกระทำใด ๆ ได้อย่างง่ายดาย (เช่นเดียวกับ VCS ใด ๆ ที่ควรทำ) ได้อย่างง่ายดายมาก
ในบริเวณนี้ Altium เป็นทางข้างหน้าของพรีเมี่ยม (Mentor และจังหวะ) เครื่องมือ
ฉันไม่ได้ทำงานกับ Altium แต่เครื่องมือนี้แม้จะมีปัญหาในปัจจุบันทำให้การกำหนดเวอร์ชันฮาร์ดแวร์โดยสมบูรณ์ง่ายมาก