ค่าของการใช้การควบคุมเวอร์ชันคืออะไร


19

ฉันยังใหม่กับการควบคุมเวอร์ชัน (ปัจจุบันใช้ SVN) แต่ฉันไม่เข้าใจว่าสิ่งนี้จะช่วยนักพัฒนาอย่างไร การควบคุมเวอร์ชันทำอะไรที่ทำให้มีประโยชน์ในสภาพแวดล้อมการพัฒนา


4
แค่อ่านอีริกซิงค์ยอดเยี่ยมมาควบคุม HOWTO ชุด: ericsink.com/scm/source_control.html สำหรับส่วนที่เหลือมีไม่มากที่จะตอบที่นี่หรือหารือ
Deckard

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

2
@hahmanisback คุณต้องการหลังจากที่คุณทำไฟล์ | โครงการใหม่ ... คุณต้องการทันทีที่คุณมี> 1 ผู้พัฒนาในโครงการ (บรรทัดมาตรฐานของฉันคือ> 0 นักพัฒนา - และฉันเชื่อว่านี่เป็นเรื่องจริงมากกว่าที่เคย)
Murph

8
การทำงานโดยไม่มีการควบคุมเวอร์ชันเป็นเหมือนการลบคำสั่ง "เลิกทำ" จากโปรแกรมประมวลผลคำที่คุณใช้พิมพ์เรียงความหรือลบยางลบและน้ำยาลบคำผิดออกจากโต๊ะทำงานของคุณ

2
@rahmanisback ทันทีที่คุณลบไฟล์หรือข้อมูลสูญหายโดยไม่ตั้งใจ @rwong การเปรียบเทียบที่ดี
Rein Henrichs

คำตอบ:


21

VisualSVN และ TortoiseSVN เป็นเพียงไคลเอนต์ UI สำหรับเซิร์ฟเวอร์ SVN เซิร์ฟเวอร์ SVN เป็นระบบควบคุมซอร์ส / เวอร์ชัน ระบบควบคุมเวอร์ชันเป็นสินทรัพย์ที่สำคัญสำหรับการพัฒนาที่แท้จริงเนื่องจากเป็นเวอร์ชั่นที่จัดเก็บซอร์สโค้ดของคุณ เมื่อใช้ระบบควบคุมเวอร์ชันคุณเก็บเฉพาะซอร์สโค้ดในเครื่องเท่านั้น สำเนาหลักจะถูกเก็บไว้ในระบบควบคุมเวอร์ชันและคุณยอมรับการเปลี่ยนแปลงระบบ

SVN ช่วยให้:

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

VisualSVN เป็นส่วนขยายของ Visual Studio ซึ่งช่วยให้คุณใช้ที่เก็บ SVN โดยตรงจาก Visual Studio UI TortoiseSVN เป็นส่วนเสริมสำหรับ Windows Explorer ซึ่งช่วยให้คุณใช้ที่เก็บ SVN โดยตรงในขณะที่คุณเรียกดูโฟลเดอร์และไฟล์


+1 Haaa .. หลังจากใช้ VCS มานานกว่าทศวรรษมันช่างยากจริงๆที่จะตอบว่า "ทำไม" ฉันหมายความว่ามันชัดเจนมาก - แต่จริงๆยากที่จะพูดจริงๆ 'ทำไม' ในแบบที่คุณทำ! คำตอบที่ดี
Dipan Mehta

ฉันเชื่อว่า AnkhSVN ทำให้งานนักฆ่ารวม SVN เข้ากับ Visual Studio
ซาอูลเดลกาโด

6

การควบคุมเวอร์ชันมีหลายสิ่ง:

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

มันเป็นขั้นต่ำสำหรับการพัฒนาซอฟต์แวร์ใด ๆ ที่ทำงานเกินกว่าเพียงการซ่อมแซมเพื่อดูว่าเกิดอะไรขึ้น

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


0

นักพัฒนาที่มีประสิทธิผลมากที่สุดอยู่คนเดียว นักพัฒนาที่โดดเดี่ยวไม่ต้องกังวลเกี่ยวกับการประสานงานกับคนอื่น แต่ทันทีที่โครงการเริ่มเป็นพหูพจน์มีค่าใช้จ่าย และสำหรับนักพัฒนาทุกคนที่เพิ่มเข้าไปในทีมค่าใช้จ่ายก็แย่ลงเรื่อย ๆ มันเป็นหน้าที่ของ VCS ที่จะช่วยจัดการค่าใช้จ่ายนี้และลดผลกระทบ

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
แม้แต่นักพัฒนาคนเดียวก็ยังต้องการการควบคุมเวอร์ชัน VCS ไม่เพียง "จัดการค่าใช้จ่าย" ตามที่อ้างถึงนี้หมายถึง
alroc

5
แม้แต่ผู้พัฒนาเพียงคนเดียวก็สามารถรู้ได้ว่าพวกเขาทำอะไรผิดเมื่อสัปดาห์ก่อนและต้องการรับรหัสเก่ากลับคืน แม้แต่ผู้พัฒนาเพียงคนเดียวก็อาจต้องการลองชุด refactors ขนาดใหญ่ที่ซับซ้อนโดยไม่ต้องเสี่ยงกับ codebase ดั้งเดิม
Gort the Robot

ฉันคิดว่าแง่มุม "สำรองข้อมูล" และ "กู้คืน" ของการควบคุมเวอร์ชันนั้นชัดเจนที่สุด แต่ก็ไม่ได้จนกว่าคุณจะทราบว่าการควบคุมเวอร์ชันช่วยลดค่าใช้จ่ายในการทำงานร่วมกันได้อย่างไร
Jace Browning
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.