มีข้อได้เปรียบในการใช้ DVCS สำหรับนักพัฒนาเดี่ยวหรือไม่


19

ตอนนี้ฉันใช้ svn แสดงผลบนเซิร์ฟเวอร์ของฉันและมี ankhsvn / เต่าบนเครื่องส่วนตัวของฉัน มันทำงานได้ดีพอและฉันไม่ต้องเปลี่ยน แต่ถ้าฉันเห็นประโยชน์บางประการของการใช้ DVCS ฉันก็อาจจะเลิกได้

อย่างไรก็ตามหากไม่มีจุดหรือความแตกต่างในการใช้งานโดยไม่มีคนอื่นฉันจะไม่รบกวน

ดังนั้นฉันถามอีกครั้งมีประโยชน์ใด ๆ ในการใช้ DVCS เมื่อคุณเป็นนักพัฒนาซอฟต์แวร์คนเดียวหรือไม่?


1
ดูโพสต์ที่คล้ายกันใน stackoverflow: stackoverflow.com/questions/179161/ … ทุกสิ่งที่คุณจำเป็นต้องรู้คือสรุปอย่างมี
ysolik

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

1
การสำรองข้อมูลเป็นเพียงโคลนอีก นั่นอาจสำคัญมากในบางวัน การใช้เครื่องมือคอมไพล์ก็คือปีก่อน svn

คุณเคยทำงานบนแล็ปท็อปห่างจากเซิร์ฟเวอร์ของคุณหรือไม่?
JBRWilkinson

คำตอบ:


19

ใช่ ฉันคิดว่าประโยชน์ที่ยิ่งใหญ่ที่สุดคือการสนับสนุนการรวมสาขา + การผสานที่ดีกว่าที่นำเสนอโดย DVCS จำนวนมาก การแตกแขนงและการรวมเป็นความเจ็บปวดในตูดใน SVN; มันน่ารำคาญพอที่จะไม่คุ้มค่ากับเวลาที่จะสร้างกิ่งก้านเล็ก ๆ ที่มีอายุสั้นสำหรับการเพิ่มฟีเจอร์อย่างรวดเร็วแก้ไขข้อผิดพลาดหรือการทดลอง แต่การรวมกันนั้นน่ารำคาญพอที่จะสร้างกิ่งก้านยาว ในทางกลับกันการแยกและการรวมเป็นเรื่องง่ายใน Git มากดังนั้นฉันจึงสร้างสาขา (ท้องถิ่น) สำหรับเกือบทุกการแก้ไขข้อบกพร่องหรือคุณลักษณะที่ฉันทำงาน

ฉันคิดว่าเครื่องมือที่นำเสนอโดย Git สำหรับการแสดงภาพ repos, grepping log และอื่น ๆ นั้นดีกว่าใน SVN เช่นกัน (แม้ว่าจะเป็นเรื่อง Git มากกว่า DVCS)

DVCS ยังไม่ต้องการเซิร์ฟเวอร์กลาง เมื่อใช้ SVN ในฐานะนักพัฒนาคุณจะต้องสร้าง repo ในพื้นที่เพื่อผลักดันซึ่งไม่ใช่ข้อกำหนดของ Git เนื่องจากทุก repo มีประวัติเต็ม ในฐานะที่เป็นข้อสรุปการเก็บ repo เป็นเพียงเรื่องของการซิปโครงการของคุณ - ไม่มี "ฐานข้อมูลกลาง" ในการสำรอง

ฉันเริ่มใช้ Git เมื่อเกือบสี่ปีที่แล้วหลังจากใช้ SVN มาระยะหนึ่งแล้วฉันก็ไม่ได้มองย้อนกลับไป


ความคิดเห็นความคิดเห็น: programmers.stackexchange.com/questions/940/…
TheLQ

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

3
DVCS ไม่ได้คอมไพล์เท่ากันเท่านั้น
Murph

6
@ ริชาร์ด แต่นั่นเป็นเรื่องที่ผิดเครื่องมือรวมศูนย์มักจะมีประวัติเชิงเส้นที่ไม่สนับสนุนการผสานที่ซับซ้อนได้ดี
ทางเลือก

2
@Murph: นี่เป็นเรื่องจริง แต่ฉันใช้ Git ดังนั้นฉันจึงใช้มันในตัวอย่างของฉัน
mipadi

7

ฉันใช้ DVCS เป็นจำนวนมากสำหรับสิ่งของส่วนตัวของฉันเอง (ฉันเป็นหนึ่งในคนเหล่านั้นที่ $ HOME ในคอมไพล์ ) มีข้อดีหลายประการ:

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

Git ทำให้ฉันคุ้นเคยกับการคิดถึงการเปลี่ยนแปลงทั้งหมดของฉันในกลุ่มตรรกะมากกว่าการโค่นล้มที่เคยทำ


(หรือเรียก git สำหรับมิเรอร์)

5

แม่ของฉันปิดโมเด็มเมื่อสายเกินไปที่จะนอนหลับ DVCS อนุญาตให้ฉันทำงานกับ VCS ต่อไปหลังจากปิดโมเด็ม


1
ฉันจะเรียกมันว่า "ความสามารถในการทำงานจากเครื่องบิน" หรือ "ความสามารถในการทำงานเมื่อ bitbucket.com หยุดทำงาน" แต่ +1 สำหรับครอบคลุมกรณีออฟไลน์
ไวแอตต์บาร์เน็ตต์

สถานที่กลางแจ้งที่ไม่มีเครือข่าย 3G
linquize

3

คำตอบเริ่มต้นก็คือ "ถ้า (สิ่งที่คุณใช้อยู่ตอนนี้) ใช้ได้กับคุณทำไมคุณถึงเปลี่ยน?

แต่ใช่แม้ว่าจะไม่มีเหตุผลในการเปลี่ยนแปลง แต่ฉันพบว่าการใช้ DVCS ค่อนข้างง่ายกว่า "รุ่นเก่า" สิ่งต่อไปนี้สำหรับMercurialซึ่งฉันใช้มากที่สุดดังนั้นระยะของคุณอาจแตกต่างกันไปขึ้นอยู่กับระบบที่คุณจะใช้

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

กระโดดประตูบทนำเพื่อ Mercurialและบล็อก (สีสวย ;-) ด้วยเคล็ดลับที่เป็นประโยชน์


อืม CVS เคยทำงานให้กับเรา แต่ไม่มีที่ไหนใกล้พอ ๆ กับการโค่นล้มเมื่อเราย้ายไป ของเล่นใหม่ให้ความสามารถใหม่แก่คุณ - ด้วยเหตุนี้ฉันจึงมองว่า Mercurial อาจเป็นตัวเลือกที่ดีกว่า (โดยเฉพาะอย่างยิ่งเมื่อฉันใช้ FogBugz) และศักยภาพของความเป็นจริง ...
Murph

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