ระบบควบคุมเวอร์ชันสำหรับห้องปฏิบัติการขนาดเล็ก?

ฉันเป็นนักศึกษาระดับบัณฑิตศึกษาสาขาวิศวกรรมไฟฟ้า และห้องปฏิบัติการของฉันมีโครงการต่างๆ ที่เกี่ยวข้องกับอัลตราโซนิก เรามีโค้ดจำนวนมากสำหรับการจำลอง แต่ตอนนี้สถานการณ์ของเราคือสคริปต์ที่กำหนดมี ~5 เวอร์ชันที่แตกต่างกัน นอกจากนี้ คนหนึ่งอาจพัฒนาโค้ดเพื่อจำลองการแพร่กระจายของคลื่น ในขณะที่อีกคนต้องการโค้ดนั้นเพื่อทำการจำลองที่แตกต่างกัน ส่งผลให้โค้ดถูกส่งกลับไปกลับมาไม่น้อย

ฉันแนะนำการควบคุมเวอร์ชันให้ที่ปรึกษาของฉัน และเธอบอกว่าเธอชอบมัน แต่ไม่มีเวลาจัดการ VCS ดังนั้นจึงต้องตั้งค่าในลักษณะที่ต้องการการบำรุงรักษาน้อยที่สุด แน่นอนว่าเราจะไม่เผยแพร่ซอฟต์แวร์สู่สาธารณะ ดังนั้นจึงไม่สำคัญว่าโครงสร้างภายในจะแหวกแนวหรือไม่

ห้องทดลองส่วนใหญ่ไม่ใช่ผู้เขียนโค้ดมืออาชีพ แต่เราทุกคนจำเป็นต้องเขียนโค้ด MATLAB รวมถึงสิ่งอื่นๆ ด้วย ดังนั้น ฉันไม่คาดหวังว่าผู้ใช้จะเก่งเรื่อง Clean Commit และอะไรทำนองนี้ ดังนั้นจึงเป็นการดีสำหรับทุกคนที่จะมี "สถานที่ทำงาน" ของตัวเองหรืออะไรทำนองนั้น แต่บอกตามตรงว่าฉันเคยใช้การควบคุมเวอร์ชันสำหรับ 3 คนพร้อมกันเท่านั้น ดังนั้นฉันจึงไม่แน่ใจว่าจะตั้งค่าอย่างไร

เลยอยากถามว่าวิธีไหนดีที่สุดครับ ฉันเพิ่งใช้ Subversion แต่ฉันสงสัยว่านั่นเป็นตัวเลือกที่ถูกต้องหรือไม่ เราต้องการระบบที่จะ (เรียงลำดับตามความสำคัญ จากมากไปน้อย):

  • ต้องการการบำรุงรักษาเพียงเล็กน้อย
  • ใช้งานง่ายและเรียนรู้ เนื่องจากไม่ใช่ทุกคนที่เคยใช้การควบคุมเวอร์ชัน
  • มีการรวมเชลล์ (เราทุกคนใช้ Windows XP)
  • ตั้งค่าการอนุญาตได้ง่ายและให้ทุกคนมีพื้นที่ทำงานเป็นของตัวเอง
  • ติดตั้งและใช้งานได้ง่าย

ดังนั้น (1) VCS ใดเป็นตัวเลือกที่ดีที่สุด และ (2) เราควรจัดโครงสร้างอย่างไร ขอบคุณสำหรับความช่วยเหลือ


person rlbond    schedule 26.01.2010    source แหล่งที่มา
comment
ข้อกำหนดที่ง่ายต่อการเรียนรู้น่าจะเป็นข้อกำหนดที่ยากที่สุดที่จะบรรลุ ฉันสังเกตเห็นว่าแม้แต่นักพัฒนาที่มีประสบการณ์ก็ยังสูญเสียโค้ดในบางครั้งเพราะพวกเขาไม่ได้คิดอย่างรอบคอบเกี่ยวกับวิธีการเช็คอินไฟล์เข้า/ออก   -  person AaronLS    schedule 26.01.2010


คำตอบ (7)


เราใช้ subversion และชื่นชอบในความเรียบง่าย ใช้งานง่าย การผสานรวม ในสภาพแวดล้อมเชลล์และความสามารถไม่เพียงแต่เวอร์ชัน รหัส แต่ยังรวมไปถึงเอกสารข้อกำหนด PDF และทรัพยากรอื่นๆ ที่เรามี

สำหรับการจัดโครงสร้าง ให้ลองใช้โครงสร้างเชิงตรรกะของคุณให้ใกล้เคียงที่สุด ง่าย ๆ เข้าไว้ :)

person Rihan Meij    schedule 26.01.2010

ฉันไม่เห็นเหตุผลว่าทำไมคุณควรมองเพิ่มเติมจาก Subversion แม้ว่าสำหรับการบำรุงรักษาเพิ่มเติมเล็กน้อย คุณสามารถตรวจสอบ GitHub ได้ (เนื่องจากเป็นโซลูชันที่โฮสต์ ดังนั้นจึงไม่ต้องกังวลกับการสำรองข้อมูล เซิร์ฟเวอร์ ฯลฯ) แต่ก็มี Repos Subversion ที่โฮสต์อยู่เช่นกัน

โดยเฉพาะอย่างยิ่งหากคุณคุ้นเคยอยู่แล้ว คุณสามารถแจ้งให้ผู้อื่นทราบและรับเครดิตเพิ่มเติม :)

person Vnuk    schedule 26.01.2010

เมื่อการโค่นล้มการตั้งค่าอย่างสมบูรณ์ควรต้องมีการบำรุงรักษาเพียงเล็กน้อย โมเดลนี้ง่ายต่อการเข้าใจ มีการผสานรวมในเชลล์ รองรับ ACL ที่ทำงานได้ดี และการตั้งค่าได้รับการบันทึกไว้อย่างดี

คุณสามารถตั้งค่าการโค่นล้มในเว็บเซิร์ฟเวอร์ รวมเข้ากับโดเมน windows เพื่อรับรองความถูกต้องหากจำเป็น (ไม่เช่นนั้นคุณต้องเพิ่ม/ลบผู้ใช้ เปลี่ยนรหัสผ่านบนเซิร์ฟเวอร์ svn)

นอกจากนี้คุณยังสามารถใช้วิธี vcs แบบกระจายได้ด้วยโซลูชันที่โฮสต์โดยไม่ต้องตั้งค่าเซิร์ฟเวอร์ แต่การที่จะเข้าใจสิ่งนั้นในใจผู้ใช้ของคุณจะยากกว่า svn มาก ไม่ต้องพูดถึงการเอามันข้ามหัวของคุณเองก่อน

เว้นแต่คุณจะมีโมเดลการพัฒนาแบบคู่ขนานที่ซับซ้อน รวดเร็ว ฉันไม่แนะนำ dvcs ฉันจะยึด SVN ต่อไป

person Jean    schedule 26.01.2010

ฉันยอมรับว่าการโค่นล้มเป็นทางเลือกที่ดีมาก แต่คุณยังสามารถพิจารณา mercurial ได้อีกด้วย: ง่ายกว่าและยังมี tortoise อินเทอร์เฟซแบบผสานรวม

person sergiom    schedule 26.01.2010
comment
คุณระบุเจาะจงได้ไหม? อะไรจะดีไปกว่า SVN? - person rlbond; 26.01.2010
comment
@ribond ไม่ใช่ประสบการณ์ตรงของฉัน ฉันบอกว่ามันง่ายต่อการติดตั้งและใช้งาน ข้อแตกต่างที่สำคัญอย่างหนึ่งก็คือ Mercurial เป็นระบบควบคุมเวอร์ชันแบบกระจาย เช่นเดียวกับ git ฉันจะลองใช้ Mercurial สำหรับโปรเจ็กต์ต่อไปของฉัน - person sergiom; 27.01.2010
comment
@ribond หัวข้อเก่านี้ดูน่าสนใจ: stackoverflow.com/questions/224396/ - person sergiom; 27.01.2010

แนะนำ www.assembla.com ครับ พวกเขาเสนอการสมัครสมาชิกแบบชำระเงิน แต่สำหรับโครงการทางวิชาการ คุณสามารถสมัครบัญชีมืออาชีพฟรีได้

ฉันใช้มันในโครงการวิชาการของฉัน และพอใจ 100% ด้วยความง่ายในการบำรุงรักษา ความพร้อมใช้งาน และความเรียบง่าย

person Victor Hurdugaci    schedule 26.01.2010

วิธีที่ง่ายที่สุดคือใช้ Subversion แต่เพื่อให้มันทำงานด้วยวิธีที่ง่ายที่สุด (ภายใต้ Windows) คุณควรใช้ TortoiseSVN อย่างแน่นอน

หลังจากการติดตั้ง มันทำงานได้ภายใน explorer เพียงคลิกขวาเพียงครั้งเดียวก็ถึงการใช้งาน บางทีคนของคุณควรพิจารณาเอกสารทั้งหมดให้ละเอียดยิ่งขึ้น เพื่อให้ความช่วยเหลือหากจำเป็น . เพื่อนๆ คนอื่นๆ ควรดูคู่มือการใช้งานรายวัน เพื่อดู เริ่มแรก

นอกจากนี้ คุณควรดูแลเกี่ยวกับวิธีการ จัดโครงสร้างพื้นที่เก็บข้อมูลของคุณ!

person Oliver    schedule 26.01.2010

การโค่นล้มมีข้อจำกัดมากเกินไปที่เกี่ยวข้องกับโมเดล "ออนไลน์เสมอ + เซิร์ฟเวอร์กลาง" ฉันขอแนะนำอย่างยิ่งให้ใช้ระบบควบคุมเวอร์ชันแบบกระจาย

จากสามตัวหลัก Git, Mercurial, Bazaar; จากประสบการณ์ของฉัน Bazaar เป็นวิธีที่ง่ายที่สุดในการใช้และตั้งค่า

person rodrigob    schedule 26.01.2010