คนที่นี่เห็นว่าอะไรเป็นจุดแข็งและจุดอ่อนของ Git, Mercurial และ Bazaar
ในความคิดของฉันความแข็งแกร่งของGitคือการออกแบบที่สะอาดและคุณสมบัติที่หลากหลาย ฉันคิดว่าการสนับสนุนที่ดีที่สุดสำหรับที่เก็บหลายสาขาและการจัดการเวิร์กโฟลว์ที่มีสาขาหนัก มันเร็วมากและมีพื้นที่เก็บข้อมูลขนาดเล็ก
มีคุณสมบัติบางอย่างที่มีประโยชน์ แต่ใช้ความพยายามที่จะใช้พวกเขา สิ่งเหล่านี้รวมถึงอาเรย์ระยะกลางที่มองเห็นได้ (ดัชนี) ระหว่างพื้นที่ทำงานและฐานข้อมูลพื้นที่เก็บข้อมูลซึ่งช่วยให้การผสานความละเอียดที่ดีขึ้นในกรณีที่ซับซ้อนยิ่งขึ้นการคอมมิตแบบเพิ่มหน่วยและการคอมไพล์ด้วยต้นไม้สกปรก การตรวจจับการเปลี่ยนชื่อและการคัดลอกโดยใช้วิธีแก้ปัญหาแบบคล้ายคลึงกันมากกว่าการติดตามโดยใช้รหัสไฟล์บางชนิดซึ่งทำงานได้ดีและอนุญาตให้มีการตำหนิ (คำอธิบายประกอบ) ซึ่งสามารถติดตามการเคลื่อนไหวของรหัสในไฟล์ต่างๆและไม่เพียงเปลี่ยนชื่อขายส่ง
ข้อเสียอย่างหนึ่งของมันคือการที่ MS Windows รองรับการล้าหลังและไม่เต็ม ข้อเสียที่รับรู้อีกอย่างหนึ่งก็คือมันไม่ได้บันทึกไว้อย่างดีเช่น Mercurial และมีผู้ใช้น้อยกว่าคู่แข่ง แต่มันเปลี่ยนแปลง
ในความเห็นของฉันความแข็งแกร่งของMercurial นั้นอยู่ในประสิทธิภาพที่ดีและมีพื้นที่เก็บข้อมูลขนาดเล็กในการรองรับ MS Windows ที่ดี
หลักของฉันคือความจริงที่ว่าสาขาท้องถิ่น (หลายสาขาในพื้นที่เก็บข้อมูลเดียว) ยังคงเป็นพลเมืองชั้นสองและในทางที่แปลกและซับซ้อนก็มีการติดแท็ก วิธีการจัดการกับการเปลี่ยนชื่อไฟล์ก็ทำได้ดีกว่า (แต่การย้ายครั้งนี้มีการเปลี่ยนแปลง) Mercurial ไม่สนับสนุนการรวมปลาหมึกยักษ์ (กับพ่อแม่มากกว่าสองคน)
จากสิ่งที่ฉันเคยได้ยินและอ่านข้อดีหลักของบาซ่าร์คือการสนับสนุนเวิร์กโฟลว์แบบรวมศูนย์ (ซึ่งก็เป็นข้อเสียด้วยแนวคิดแบบรวมศูนย์ที่มองเห็นไม่ควร) การติดตามการเปลี่ยนชื่อไฟล์และไดเรกทอรี
ข้อเสียเปรียบหลักคือประสิทธิภาพและขนาดของที่เก็บสำหรับที่เก็บขนาดใหญ่ที่มีประวัติไม่เชิงเส้นยาว (ประสิทธิภาพที่ปรับปรุงอย่างน้อยสำหรับที่เก็บไม่ใหญ่เกินไป) ข้อเท็จจริงที่ว่ากระบวนทัศน์เริ่มต้นคือหนึ่งฟาร์มต่อหนึ่งที่เก็บ (คุณสามารถตั้งค่า และแนวคิดแบบรวมศูนย์ (แต่นั่นก็มาจากสิ่งที่ฉันเคยได้ยินการเปลี่ยนแปลง)
Git เขียนใน C, เชลล์สคริปต์และ Perl, และสามารถเขียนได้ Mercurial เขียนด้วย C (core, for performance) และ Python และจัดทำ API สำหรับส่วนขยาย Bazaar เขียนด้วย Python และให้บริการ API สำหรับส่วนขยาย
ในการพิจารณาแต่ละข้อด้วยกันและต่อต้านระบบควบคุมเวอร์ชันเช่น SVN และ Perforce ควรพิจารณาประเด็นใดบ้าง
ระบบควบคุมเวอร์ชันเช่น Subversion (SVN), Perforce หรือ ClearCase เป็นระบบควบคุมเวอร์ชันรวมศูนย์ Git, Mercurial, Bazaar (และ Darcs, Monotone และ BitKeeper) เป็นระบบควบคุมเวอร์ชันที่แจกจ่าย ระบบควบคุมเวอร์ชันแบบกระจายช่วยให้มีเวิร์กโฟลว์ที่หลากหลายมากขึ้น อนุญาตให้ใช้ "เผยแพร่เมื่อพร้อม" พวกเขามีการสนับสนุนที่ดีกว่าสำหรับการแยกและการรวมและสำหรับเวิร์กโฟลว์ที่มีสาขามาก คุณไม่จำเป็นต้องเชื่อใจผู้คนด้วยการให้สิทธิ์ในการเข้าถึงเพื่อรับการสนับสนุนจากพวกเขาในวิธีที่ง่าย
ในการวางแผนการโอนย้ายจาก SVN ไปยังหนึ่งในระบบควบคุมเวอร์ชันกระจายเหล่านี้คุณจะพิจารณาปัจจัยใดบ้าง
ปัจจัยหนึ่งที่คุณอาจต้องการพิจารณาคือการสนับสนุนสำหรับการใช้ SVN แบบไม่ใช้งาน Git มี git-svn, Bazaar มี bzr-svn และ Mercurial มีส่วนขยาย hgsubversion
ข้อจำกัดความรับผิดชอบ:ฉันเป็นผู้ใช้ Git และผู้มีเวลาน้อยและดู (และมีส่วนร่วมใน) รายชื่อผู้รับจดหมาย git ฉันรู้ Mercurial และ Bazaar จากเอกสารประกอบการอภิปรายต่างๆเกี่ยวกับ IRC และรายชื่อผู้รับจดหมายและโพสต์บล็อกและบทความเปรียบเทียบระบบควบคุมเวอร์ชันต่าง ๆ (บางส่วนอยู่ในหน้าGitComparisonบน Git Wiki)