การควบคุมเวอร์ชันสำหรับนักพัฒนาอิสระ?


60

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


54
ฉันชอบที่จะเห็นเภสัชกรถามว่า: "ฉันควรจัดเก็บยาในลักษณะที่เป็นระเบียบหรือเพียงแค่โยนพวกมันทั้งหมดไว้ในลิ้นชัก? มันคุ้มค่ากับความพยายามหรือไม่?"
Erik

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

@Erik Yuck โฟลเดอร์สำรองเสียงน่ารังเกียจ ฉันใช้การควบคุมแหล่งที่มาสำหรับโครงการของฉันแม้ว่าฉันจะไม่ค่อยเก่งในการลงมือทำบ่อยนัก
vedosity

คำตอบ:


61

หากคุณใช้การควบคุมแหล่งที่มาแบบกระจายอำนาจ (Mercurial หรือ Git หรือ Bazaar หรืออะไรก็ตาม) คุณจะได้รับประโยชน์จาก SVN / CVS ที่ทำให้ใช้งานได้ง่ายมีประโยชน์และมีประสิทธิภาพในกรณีที่คุณเป็นอินดี้:

  1. คุณกระทำภายใน : dir โครงการของคุณเป็น repo ของคุณที่มีประวัติเต็ม ดังนั้นคุณไม่จำเป็นต้องมีเซิร์ฟเวอร์คุณยอมรับโดยตรงใน repo ของคุณและคุณสามารถมี repos ได้หลายเครื่องในคอมพิวเตอร์เครื่องเดียวกัน ใช้แล็ปท็อปที่คุณเปิดบางครั้งเพื่อทำงานต่อกับสิ่งต่าง ๆ ที่ดี! คุณไม่ต้องตั้งค่าเซิร์ฟเวอร์และถ้าคุณต้องการในภายหลังมันง่ายและคุณเพียงแค่ "ดัน" และ "ดึง" การเปลี่ยนแปลงระหว่างที่เก็บข้อมูล
  2. มันถูกสร้างขึ้นเพื่อลดความยุ่งยากในการทดลอง : บ่อยครั้งที่คุณต้องมีความคิดเกี่ยวกับคุณลักษณะที่ไม่มีรหัสที่ก่อให้เกิดมลพิษ ด้วย SVN และ CVS คุณสามารถใช้ระบบการแยกย่อยแล้วปล่อยสาขาถ้าคุณสมบัติไม่ดีเท่าที่คุณต้องการ แต่ถ้าคุณต้องการที่จะรวมคุณสมบัติกับเวอร์ชั่นลำตัวคุณจะต้องประหลาดใจอย่างมากในการแก้ไข Git, Mercurial และ Bazaar (อย่างน้อย) ทำให้การรวมและสาขาเป็นเรื่องง่าย คุณสามารถทำซ้ำ repo ทำงานได้บ้างยังคงกระทำและฆ่าหรือผลักดันการเปลี่ยนแปลงของคุณใน repo หลักหากคุณต้องการ
  3. ความยืดหยุ่นขององค์กร : ตามที่กล่าวไว้ก่อนหน้านี้เมื่อคุณมี repos ที่คุณจัดระเบียบตามที่คุณต้องการมันเป็นเรื่องง่ายที่จะเริ่มต้นคนเดียวและอนุญาตให้คนอื่นทำงานร่วมกับคุณโดยการเปลี่ยนองค์กรของคุณ ไม่มีการกำหนดองค์กรดังนั้นคุณเพียงแค่ต้องตั้งค่าและดำเนินการ ฉันมักจะเพียงแค่ผลัก / ดึงการเปลี่ยนแปลงระหว่างคอมพิวเตอร์ของฉัน (แล็ปท็อป / เดสก์ท็อป / เซิร์ฟเวอร์) และฉันยังคงอยู่คนเดียวกับ devs ของฉัน ฉันใช้ Mercurial และช่วยฉันทำซ้ำงานของฉัน แต่ยังทำงานกับคุณสมบัติที่ฉันคิดนอกแล็ปท็อปของฉันจากนั้นทำงานต่อไปในคุณสมบัติอื่น ๆ บนเดสก์ท็อปของฉันจากนั้นผลักดันการเปลี่ยนแปลงแล็ปท็อปของฉันบนเดสก์ท็อปหรือเซิร์ฟเวอร์ แล็ปท็อปและวางไว้ (เป็นสำรองและทีมงาน repo ในอนาคต) บนเซิร์ฟเวอร์ของฉัน
  4. ช่วยในการตั้งค่าการสำรองข้อมูล : ถ้าคุณตั้งค่า repo ส่วนกลาง (บน GitHub ถ้าเป็นสาธารณะหรือใน repo ส่วนตัวบน BitBucket) คุณสามารถเขียนสคริปต์ซึ่งจะถูกดำเนินการทุกครั้งที่คอมพิวเตอร์ถูกบูตแล้วผ่านสคริปต์ที่กล่าวไว้บน ถึงเพื่อนของคุณเพื่อให้การสำรองข้อมูลอัตโนมัติของคุณเป็นประจำ มันเป็นสิ่งที่ฉันทำตอนนี้ฉันแน่ใจว่ามันจะไม่ง่ายที่จะสูญเสียงานของฉัน

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


6
มีเสมอGitHub
HedgeMage

8
หรือbitbucket.orgถ้าคุณใช้ Mercurial
Terence Ponce

7
Mercurial พร้อม repo ระบบไฟล์ในเครื่องบน dropbox ใช้งานได้ดีจริง ๆ สำหรับ dev เดียว
Pieter Breed

1
@Gillaillaume: นักพัฒนาซอฟต์แวร์รายเดียวสามารถใช้มุมมอง "แบบกระจาย" ของ DVCS ฉันทำ. ตัวอย่างเช่นผมสามารถทำงานบนคอมพิวเตอร์ที่ผลักดันการทำงานของฉันคีย์ USB ของฉันแล้วดึงจากคีย์ USB นี้บนคอมพิวเตอร์บี
barjak

1
@Gillailla "กระจาย" เป็นด้านเทคนิคไม่ใช่องค์กรหนึ่ง คุณสามารถใช้ระบบแหล่งสัญญาณส่วนกลางส่วนกลางกับองค์กรที่มีผู้รวมระบบอนุญาตให้ทำการตรวจสอบความถูกต้องของรหัสได้ เป็นไปได้ แต่ยากที่จะติดตั้งเนื่องจากลักษณะเป็นศูนย์กลางของเครื่องมือ แต่นั่นยังคงเป็นปัญหามุมฉาก
Klaim

34

การควบคุมซอร์สโค้ดนั้นไม่มีประโยชน์อย่างมากสำหรับนักพัฒนาอิสระเพราะอย่างที่เราทุกคนรู้:

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

เรียกฉันว่า "นักพัฒนาอิสระ": ที่เก็บของ Mercurial ทำการลอกเลียนแบบระหว่างเดสก์ท็อปแล็ปท็อปไดรฟ์สำรอง USB และ bitbucket.org ได้อย่างง่ายดาย ฉันเติบโตขึ้นและฉันก็ชอบแบบนั้น!


6
คำตอบนี้ประชดหรือเปล่า?

4
@kurtnelle: สุดยอด!
Steven A. Lowe

1
Kewlio เพียงตรวจสอบ

21

ทำไมจะไม่ล่ะ?

ฉันเป็นนักพัฒนาเดี่ยวและฉันใช้ BitBucket และ Mercurial สำหรับโครงการส่วนตัวของฉัน การมีความสามารถในการย้อนกลับและแยกรหัสของคุณนั้นดีเกินกว่าที่จะส่งผ่านได้


8
+1 สำหรับ BitBucket - พวกเขาเสนอที่เก็บส่วนตัวแบบไม่ จำกัด ฟรี
Jon Sagara

2
ที่เก็บส่วนตัวฟรีคือเหตุผลที่ฉันใช้ BitBucket ผ่าน GitHub
Terence Ponce

4
repo ส่วนตัวฟรี คุณอาจเปลี่ยนฉันจากคอมไพล์เป็น hg
Gauthier

@Gauthier, อ๋อ, BitBucket มี repos ส่วนตัวฟรี ฉันไม่แน่ใจว่าพวกเขาจะไม่ จำกัด
Terence Ponce

1
คุณยังสามารถใช้คอมไพล์ด้วย bitbucket ได้ อันที่จริงการนำเข้าโดยตรงจาก GitHub รวมถึงปุ่ม ssh เพิ่งจะย้าย แต่ยังคงใช้คอมไพล์ (ฉันชอบมันดีกว่า!)
Daniel Casserly

1

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


1

ใช่. มันมีประโยชน์มาก ๆ เพื่อนของฉันMatt Gallagherโพสต์บทความที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้เมื่อไม่กี่วันที่ผ่านมาไปยังบล็อก "Cocoa With Love" iOS / MacOS ของเขา

บทความเป็น Mac & Git centric แต่ครอบคลุมพื้นฐาน

คุณอาจสนใจในคำถาม StackExchange ต่อไปนี้ (และคำตอบ)


1

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


2
ที่จริงฉันใช้การควบคุมแหล่งที่มา แต่ฉันก็มักจะทำสิ่งต่าง ๆ เช่นวิศวกรรมมากเกินไปและการใช้สิ่งที่เกินความจริง ฉันรู้จักกันดีในเรื่องนี้ในที่ทำงาน จากนั้นอีกครั้งฉันไม่คิดว่าโปรแกรมเมอร์คนใดที่ฉันทำงานรวมถึงฉันเคยทำงานที่อื่นในฐานะโปรแกรมเมอร์และพวกเราส่วนใหญ่ยังอยู่ในโรงเรียนมัธยม
vedosity

1

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


0

ใช่.

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

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