ฉันประสบความสำเร็จอย่างมากกับgit-hgจากhttps://github.com/cosmin/git-hg (ต้องใช้การติดตั้งในการทำงานhgด้วย) มันรองรับการดึงดึงและดันและมีความเสถียรมากกว่าสำหรับฉันhg-git(คุณสมบัติที่คล้ายกันตั้งแต่hgถึงคอมไพล์)
ดูhttps://github.com/cosmin/git-hg#usageสำหรับตัวอย่างการใช้งาน git-svnส่วนติดต่อผู้ใช้จะคล้ายกับ
git-hgต้องใช้พื้นที่ดิสก์เพิ่มเติมสำหรับแต่ละ repo hg โคลน การใช้งานนั้นใช้โคลน Mercurial เต็มรูปแบบโคลนเปลือยคอมไพล์พิเศษและ repo คอมไพล์จริง พื้นที่ดิสก์ที่ต้องการประมาณ 3 เท่าของการใช้งานคอมไพล์ปกติเท่านั้น สำเนาพิเศษจะถูกจัดเก็บไว้ด้านล่าง.gitไดเรกทอรีของไดเรกทอรีทำงานของคุณ (หรือตำแหน่งที่ชี้ตามGIT_DIRปกติ)
หมายเหตุ:ปัญหาพื้นฐานที่git-hgพยายามแก้ไขคือไม่มีการแมป 1: 1 ระหว่างgitและhgคุณลักษณะ ปัญหาใหญ่ที่สุดคือไม่ตรงกันความต้านทานระหว่างสาขาคอมไพล์และสาขาที่ไม่มีชื่อ hgและhg ชื่อสาขาและบุ๊คมาร์ค hg (ทั้งหมดดูเหล่านั้นเป็นจำนวนมากเช่นสาขาgitผู้ใช้) ปัญหาที่เกี่ยวข้องคือhgพยายามบันทึกชื่อสาขาเดิมในประวัติรุ่นซึ่งตรงข้ามกับ git ที่มีการเพิ่มชื่อสาขาในเทมเพลตการส่งข้อความโดยค่าเริ่มต้น
เครื่องมือใด ๆ ที่อ้างว่าสร้างสะพานเชื่อมโยงระหว่างgitและhgควรอธิบายว่าจะจัดการอย่างไรกับการจับคู่อิมพิแดนซ์นี้ จากนั้นคุณสามารถตัดสินใจได้ว่าโซลูชันที่เลือกนั้นเหมาะสมกับความต้องการของคุณหรือไม่
โซลูชันที่git-hgใช้คือการทิ้งบุ๊กมาร์ก hg ทั้งหมดและแปลงสาขาที่มีชื่อเป็นสาขา git นอกจากนี้ยังตั้งค่าสาขาหลัก git เป็นค่าเริ่มต้นสาขา hg ที่ไม่มีชื่อ