ฉันต้องการเลือกระบบควบคุมเวอร์ชันสำหรับ บริษัท ของฉัน จนถึงตอนนี้ฉันรู้ว่าฉันมี Git, การโค่นล้มและ Mercurial
ทุกวันนี้ฉันเห็นว่า Git นั้นถูกใช้มากที่สุดดังนั้นฉันจึงสงสัยว่าจะมีเหตุผลใดที่จะยังคงใช้การโค่นล้มหรือฉันควรไปที่ Git โดยตรงหรือไม่
ฉันต้องการเลือกระบบควบคุมเวอร์ชันสำหรับ บริษัท ของฉัน จนถึงตอนนี้ฉันรู้ว่าฉันมี Git, การโค่นล้มและ Mercurial
ทุกวันนี้ฉันเห็นว่า Git นั้นถูกใช้มากที่สุดดังนั้นฉันจึงสงสัยว่าจะมีเหตุผลใดที่จะยังคงใช้การโค่นล้มหรือฉันควรไปที่ Git โดยตรงหรือไม่
คำตอบ:
SVN ยังไม่ตายเลย มันยังคงใช้งานได้อย่างกว้างขวางมากและจะไม่ไปไหนทุกเวลาเร็ว ๆ นี้ SVN นั้นใช้ง่ายกว่าการควบคุมเวอร์ชันแบบกระจายโดยเฉพาะอย่างยิ่งถ้าคุณไม่ได้ใช้งานโปรเจ็กต์แบบกระจายที่ต้องการการควบคุมเวอร์ชันแบบกระจาย
หากคุณมีที่เก็บส่วนกลางเพียงแห่งเดียว (ซึ่งเป็น บริษัท ของคุณทั้งหมดจะต้องใช้ถ้าพวกเขายังเล็กพอที่จะได้รับโดยไม่มีการควบคุมแหล่งที่มา) มันง่ายกว่ามากที่จะใช้ SVN เพื่อโต้ตอบกับมัน ตัวอย่างเช่นด้วย SVN คุณสามารถดึงการเปลี่ยนแปลงจากที่เก็บหรือกระทำการเปลี่ยนแปลงในเครื่องของคุณด้วยการดำเนินการครั้งเดียวในขณะที่ HG และ Git ต้องการสองหรือสามขั้นตอนในการทำงานที่เทียบเท่า
และด้วยการปรับปรุงล่าสุด SVN ได้แก้ไขปัญหาด้านประสิทธิภาพจำนวนมากที่ทำให้ผู้คนชอบ HG และ Git มันเร็วกว่าตอนนี้อย่างมากเมื่อสองสามปีก่อนและ ณ จุดนี้ไม่มีเหตุผลที่ดีที่จะดู HG หรือ Git สำหรับโครงการของคุณเว้นแต่ว่าคุณต้องการคุณลักษณะขั้นสูงของการควบคุมเวอร์ชันแบบกระจาย
ยังไม่มีการพูดถึงการใช้เครื่องมือของลูกค้า แน่นอนคุณสามารถทำทุกอย่างด้วยสคริปต์บรรทัดคำสั่ง แต่การรวม GUI สามารถช่วยเพิ่มประสิทธิผลได้จริง
เราทำงานกับ Visual Studio เป็นส่วนใหญ่ การรวมเข้ากับ IDE นั้นดีกว่าสำหรับ SVN มากกว่า Git ในตอนนี้ สิ่งนี้อาจเปลี่ยนแปลงได้ในอนาคต แต่แน่นอนว่าฉันต้องคำนึงถึงเรื่องนี้ในการตัดสินใจของคุณเช่นเดียวกับฟังก์ชั่นการควบคุมเวอร์ชัน
เช่นเดียวกับทุกสิ่งทุกอย่างระบบควบคุมเวอร์ชันไม่ใช่เป้าหมายในตัวมันเองเป็นเพียงเครื่องมือในการนำคุณไปสู่ที่ที่คุณต้องการ เลือกอันที่จะพาคุณไปที่นั่นได้เร็วที่สุดตามสถานการณ์ของคุณ
ฉันเป็นแฟนของ Git เมื่อเร็ว ๆ นี้ฉันต้องยอมรับว่าหนึ่งในข้อเสียของ Git คือมันระบุรุ่นที่มีแฮชตรงข้ามกับหมายเลขรุ่น svn หมายเลขโทรศัพท์สามารถส่งผ่านได้ง่ายขึ้นทางโทรศัพท์หรืออะไรทำนองนั้น
และนั่นเป็นโปรเดียวที่ฉันจินตนาการได้ ถ้าคุณอยากจะพึ่งพาคุณลักษณะที่คุณสามารถมีได้ในการกระจายและ / หรือศูนย์ VCS ท์บาซาร์ ใน Git มีแท็กที่สามารถตอบสนองวัตถุประสงค์ได้
อย่างไรก็ตามฉันไม่สามารถจินตนาการถึงการพัฒนาได้หากไม่มีการสับเปลี่ยนสาขาอย่างรวดเร็วและหยุดนิ่ง ทั้งสองฟีเจอร์นี้โดดเด่นกว่า SVN ซึ่งเท่าที่ฉันจำได้ภารกิจเดียวกันที่ต้องสร้างและตรวจสอบต้นไม้ทั้งหมดในไดเรกทอรีที่แยกต่างหากเพื่อให้บรรลุเป้าหมายเดียวกัน
ผู้ที่เรียกว่า "คุณสมบัติขั้นสูงของการควบคุมเวอร์ชันกระจาย" มาพร้อมกับเวลาและคุณไม่จำเป็นต้องเรียนรู้ตั้งแต่เริ่มแรก อย่ากลัวพวกเขา พวกเขาอยู่ที่นี่เพื่อช่วยคุณไม่ให้ขวางทาง และไม่มีปัญหาในการตั้งค่าที่เก็บส่วนกลางสำหรับ DVCS
ด้วย SVN คุณสามารถเช็คเอาต์บางส่วนของที่เก็บข้อมูลได้อย่างง่ายดายจนถึงระดับโฟลเดอร์ในขณะที่มีคอมไพล์คุณจะได้รับพื้นที่เก็บข้อมูลทั้งหมดรวมถึงประวัติทั้งหมด
อาจมีข้อดีบางประการสำหรับ SVN ทั้งนี้ขึ้นอยู่กับสถานการณ์
(สิ่งนี้ยังมีข้อเสียใหญ่ ๆ เช่น ".svn" ขยะที่ซ่อนอยู่ตลอดจนโฟลเดอร์ต้นไม้ของคุณ)
"ถ้าคุณมีงานที่สามารถทำได้ในหกชั่วโมงมันจะดีกว่าถ้าเขียนเครื่องมือที่ทำได้ใน 20 นาทีแม้ว่าการสร้างเครื่องมือจะใช้เวลาหกชั่วโมงหรือไม่"
การควบคุมเวอร์ชันแบบกระจายนั้นเป็นสัตว์ร้ายที่ต้องจัดการ มันต้องมีการเรียนรู้มากมายสำหรับนักพัฒนาแต่ละคน หากคุณมีบัฟเฟอร์เพื่อรองรับกระบวนการเรียนรู้สำหรับนักพัฒนาแต่ละคนคุณควรย้ายไปยังระบบควบคุมเวอร์ชันที่แจกจ่ายได้ดี เมื่อขั้นตอนการเรียนรู้ผ่านการควบคุมเวอร์ชันแบบกระจายจะดีกว่าการควบคุมเวอร์ชันแบบรวมศูนย์มากขึ้น
การควบคุมเวอร์ชันแบบกระจายดูเหมือนจะเป็นเหตุการณ์ที่ไม่แน่นอน มันอยู่ที่นี่เพื่ออยู่เป็นเวลานานมันจะดีกว่าที่เราจะปรับตัวเข้ากับมันเร็วกว่าในภายหลัง ฉันจำการสนทนาเดียวกันเมื่อ SVN เป็นคนใหม่และผู้คนเคยชินกับ CVS มีการโต้แย้งมากมายที่ไม่ได้ใช้ SVN แต่ในที่สุด SVN กลายเป็นระบบควบคุมเวอร์ชันที่เป็นที่นิยมที่สุด
หาก บริษัท ก่อตั้งขึ้นมาอย่างดีพร้อมด้วยซอร์สโค้ดจำนวนมากในระบบควบคุมเวอร์ชันที่มีอยู่การย้ายไปที่ระบบใหม่เป็นงานที่ใหญ่ แต่ถ้า บริษัท มีขนาดเล็กหรือเริ่มต้นขึ้นการย้ายไปยังการควบคุมเวอร์ชันใหม่นั้นง่ายมาก แต่ถ้าคุณยึดการควบคุมเวอร์ชันที่เก่ากว่า (ในการตั้งค่าใหม่) คุณจะเข้าสู่คอขวดในอนาคตที่ซึ่งคุณจะต้องวางแผนการโยกย้ายการควบคุมเวอร์ชันในที่สุด
ฉันได้เห็นความคิดเห็นของ SVN มืออาชีพจำนวนมาก แต่พวกเขาทั้งหมดมีแนวโน้มที่จะเป็น "SVN ไม่เลว" มากกว่า "SVN ดีกว่า" ดังนั้นฉันขอแนะนำอย่างยิ่งให้คุณเลือกการควบคุมเวอร์ชันแบบกระจาย (เช่น Git) สำหรับโครงการของคุณ
แก้ไข ข้อดีของ GIT ผ่าน SVN
มีคนพูดถึงเครื่องมือ (สำหรับ visual studio) ว่าเป็นเหตุผลที่ต้องใช้ SVN http://gitscc.codeplex.com/ให้การสนับสนุน GIT สำหรับ Visual Studio
Once the learning phase is over Distributed Version Control is much better than Centralized Version Control.
ฉันไม่เห็นด้วยกับสิ่งนี้อย่างสมบูรณ์ มันอาจมีประโยชน์บางอย่างที่รับรู้ในบางสถานการณ์ แต่บางสิ่งที่ง่ายเหมือนหมายเลขรุ่นใน svn ที่มนุษย์สามารถอ่านได้เป็นประโยชน์อย่างมากในหลาย ๆ องค์กร
จะมีเหตุผลใดที่เจาะจงที่จะใช้การโค่นล้มในสมัยนั้น
นอกเหนือจากการสนับสนุนการใช้เครื่องมือใน IDE (ซึ่งฉันไม่ได้ใช้) - ไม่จริงไม่ แน่นอน SVN อาจจะคุ้นเคยมากกว่า แต่นั่นเป็นเพียงเหตุผลเดียวและฉันพบว่าทั้ง Hg และ Git นั้นง่ายมาก (และเร็วมาก) ในการเรียนรู้
ใช่มีคำแนะนำที่ซับซ้อนเหล่านั้นออกมาซึ่งอธิบายว่า Git เป็นเรื่องเล็กน้อยได้อย่างไรเมื่อคุณเข้าใจว่ากิ่งไม้นั้นเป็นเพียงการทำแผนที่ endofunctors การทำแผนที่โฮมโมมอฟิคของพื้นที่ฮิลแบร์ต 1
ฉันไม่เข้าใจสิ่งนั้น แต่คุณรู้อะไรไหม? มันไม่สำคัญ คุณไม่จำเป็นต้องรู้สิ่งใด ๆ ในการใช้ Git
ส่วนใหญ่แล้ว Git และ Hg นั้นใช้งานง่ายและมีข้อได้เปรียบเหนือ SVN แน่นอนว่าช้างในห้องนั้นแตกแขนงแล้วกิ่งก้านก็ทำงานใน Git และ Hg ในทางตรงกันข้ามใน SVN พวกเขาเจ็บปวดอย่างที่สุดและแตกหักอย่างรุนแรง (รวมหลายหัว)
แน่นอนคุณยังสามารถใช้ SVN ได้ คุณยังสามารถใช้ Windows XP ได้ อย่างไรก็ตามผู้ใช้ส่วนใหญ่ที่ลองใช้ทั้งคู่ตกลงกันว่าหนึ่งในทางเลือกนั้นเหนือกว่าอย่างมาก
1ใช่ฉันเข้าใจแล้วว่านี่เป็นเรื่องตลก ฉันคิด.