คำเตือน: เนื่องจากโพสต์นี้ฉันพบ Mercurial และรักมันมากกว่า SVN มาก ดังนั้นโพสต์นี้ค่อนข้างล้าสมัยด้วยความเห็น Pro SVN และ anti-DVCS ทั่วไป แต่สิ่งที่ต่อต้าน git ยังคงเกี่ยวข้อง
ฉันเป็นแฟนของSVNมากกว่า Git
ทำไม? เพราะ SVN นั้นง่ายขึ้นสำหรับนักพัฒนาเดี่ยวหรือทีมเล็กและ git (โดยเฉพาะ msysgit) ทำให้ฉันมีรสนิยมในปากที่ไม่ดี
เมื่อฉันฝึกงานที่ร้านค้าเล็ก ๆ ฉันได้รู้จักกับ git บน Windows ฉันสังเกตเห็นจำนวนงานที่ต้องทำเพื่อให้มันทำงานกับ Github ได้ทันที ก่อนอื่นฉันต้องสร้างคีย์ส่วนตัว ssh วางกุญแจสาธารณะใน Github จากนั้นเปิดหน้าเว็บขึ้นมาและเปิดคีย์ส่วนตัวของฉันทุกครั้งที่ฉันต้องการกดซึ่งเป็นเรื่องที่น่ารำคาญอย่างยิ่ง
และฉันไม่เคยชอบที่ฉันดึงลงพื้นที่เก็บข้อมูลทั้งหมด ฉันจะยอมรับว่าฉันไม่เคยทำงานกับสิ่งใดที่ยิ่งใหญ่ แต่ฉันกลัวที่จะดาวน์โหลดคลังเก็บของ KDE ใน Git ถ้าทั้ง repo และการแก้ไขนั้นอยู่ใน HD ของฉัน
จากนั้นก็มีกระบวนการทำให้เกิดความสับสน TMK ฉันต้อง "ขั้นแรก" ไฟล์ทั้งหมดที่ฉันต้องการที่จะกระทำ (ซึ่งดูดเมื่อคุณมีไฟล์จำนวนมากใช้เวลาสักครู่ในการค้นหาคำสั่งด้วยตนเองเพื่อทำทุกอย่าง) จากนั้นทำคอมมิทจากนั้นกดปุ่มหลัก repo (เพราะเหตุใดจึงเป็นการดำเนินการแยกต่างหาก?!)
คุณมีข้อมูลการกระทำที่ไม่เป็นประโยชน์อย่างมาก (!) โอ้ดูนี่คือการกระทำ 14f74433245ae17aeeaa ส่วนหนึ่งของต้นไม้ 2167a4934d0a4a7db0de และผู้ปกครอง d7042abb4821d3faf600 นั่นแปลว่านรกใช่ไหม? ฉันควรจะสามารถเข้าใจสิ่งต่าง ๆ ได้อย่างรวดเร็วและไม่ต้องปรึกษากับเอกสารแปลก ๆ
อย่างน้อยตอนที่ฉันใช้มันดูเหมือนว่าทุกอย่างอยู่ในรูปแบบไฟล์ man linux, IE สับสนและไร้ประโยชน์กับฉัน ฉันไม่ค่อยได้รับความช่วยเหลือมากนักในเอกสารและหันมาใช้ google
และด้วยความมุ่งมั่นสิ่งหนึ่งที่ฉันไม่ชอบคือการขาดหมายเลขรุ่น ตอนนี้ฉันรู้แล้วว่านี่เป็นเพราะการออกแบบคอมไพล์ แต่ซอฟต์แวร์ใด ๆ จำเป็นต้องมีหมายเลขเวอร์ชัน ฉันยังจำได้ว่าตัวทำเครื่องหมายที่จะปรากฏขึ้นว่า "รุ่นที่เปลี่ยนเป็น 1.8.6" หรือสิ่งที่คล้ายกัน แต่คุณยังไม่สามารถสร้างตัวเลขได้ ให้ฉันมีรุ่นเป็น 1.8.6.5164 (ส่วนสุดท้ายคือหมายเลขการแก้ไข) บอกฉันมากกว่าเพียงแค่ 1.8.6 และโน้ตที่บอกว่ามีอะไรบางอย่างเปลี่ยนไปลองดู
การระบุซอฟต์แวร์เฉพาะโปรแกรมพื้นฐานบน Windows คือ msysgit ซึ่งเป็นส่วนต่อประสานที่แย่มาก มันล็อคฉันไม่กี่ครั้งมีอินเทอร์เฟซที่น่ากลัวและการรวม CLI-GUI นั้นดีที่สุด บรรทัดคำสั่ง junkies รอบตัวฉันเกลียด gui มากยิ่งขึ้น
ตอนนี้ให้ดูที่ SVN และเนื่องจากฉันใช้ Windows และมีบัญชี Google โดยเฉพาะ TortoiseSVN และ Google Code
ก่อนอื่นการรวมเชลล์ที่สมบูรณ์เพื่อทำทุกอย่างบนพื้นที่เก็บข้อมูล (และสำหรับคนที่ใช้ลินุกซ์ของคุณ RabbitVCS ก็ทำสิ่งเดียวกัน) โดยไม่จำเป็นต้องใช้ GUI หลัก การได้รับพื้นที่เก็บข้อมูลเป็นเรื่องง่ายเหมือนการชำระเงินไม่จำเป็นต้องใช้ SSH (จำไม่ได้ว่า Github ต้องการ SSH สำหรับการดึง) และไม่มีการซื้อคืนทั้งหมด + การกระทำทั้งหมดที่ผ่านมากระทำบน HD ของคุณ
การคอมมิทชั่นเป็นเรื่องง่ายมากเนื่องจากไม่จำเป็นต้องใช้ SSH หรือการจัดเตรียม คุณเพียงแค่ตรวจสอบไฟล์ทั้งหมดที่คุณต้องการโดยใช้ตัวเลือกทั้งหมดที่เป็นประโยชน์ที่มีประโยชน์ใน msysgit ของฉันไม่พร้อมใช้งานพิมพ์ข้อความคอมมิทและกดคอมมิท จากนั้น Google Code จะขอข้อมูลการเข้าสู่ระบบของคุณ (ซึ่งลูกค้าส่วนใหญ่เก็บไว้) และคุณทำเสร็จแล้ว ง่ายง่ายและไม่มี SSH
หมายเลขรุ่น? ด้วยรหัสง่ายๆคุณสามารถเพิ่มหมายเลขรุ่นและหมายเลขการกระทำในการชำระเงินทั้งหมดซึ่งทำให้สิ่งต่าง ๆ ง่ายขึ้นมาก คุณยังได้รับหมายเลขเวอร์ชันที่ใช้งานได้ซึ่งแสดงการเปลี่ยนแปลงจริงเช่น 1.8.6.5165 เป็นรุ่นใหม่กว่า 1.8.6.5164
เอกสาร? มันยากที่จะพูด Tortoise ได้รับการบันทึกไว้ แต่ฉันไม่ได้อ้างถึงเอกสารอย่างเป็นทางการเป็นเวลานานจนฉันไม่สามารถตัดสินได้ การอ่านคู่มือแนะนำง่าย ๆ ก็เพียงพอแล้วสำหรับฉัน
การผสานเป็นอย่างอื่นที่ฉันไม่สามารถเปรียบเทียบได้ ฉันต้องทำมันครั้งเดียวใน Git เมื่อคนอื่นมุ่งมั่นที่จะเปลี่ยนแปลงไฟล์ที่ฉันทำงานอยู่ แต่ไม่เคยอยู่ใน SVN
ฉันจะแนะนำอันไหน ในทีมขนาดใหญ่ git มีข้อได้เปรียบส่วนใหญ่อยู่ในวงจรการพัฒนาที่ไม่ใช่เชิงเส้น ในโครงการอื่นฉันเห็นโปรแกรมเมอร์ 4 คนเริ่มต้นแยกสาขาจากนั้นผสานรหัสทั้งหมดด้วยวิธีที่แปลกประหลาดอย่างยิ่ง Github และ msysgit มีเครื่องมือสร้างภาพที่ดีมากสำหรับโครงการทั้งหมดที่ฉันชอบ
สำหรับผู้พัฒนาเดี่ยวหรือโปรเจ็กต์ทีมขนาดเล็ก SVN จะดีที่สุดเนื่องจากฟีเจอร์ Gits ส่วนใหญ่ไม่ได้ใช้และคุณจะได้รับชิ้นส่วนเชิงลบเท่านั้น ความเรียบง่ายเป็นสิ่งที่ดี