การทำงานร่วมกันของคอมไพล์ด้วย Mercurial Repository


195

ฉันใช้ GIT บน Mac พูดพอแล้ว. ฉันมีเครื่องมือฉันมีประสบการณ์ และฉันต้องการใช้มันต่อไป ไม่มีสงครามที่นี่ ...

ปัญหามักเกิดจากการทำงานร่วมกัน คนส่วนใหญ่ใช้ SVN ซึ่งยอดเยี่ยมสำหรับฉัน Git SVN ทำงานนอกกรอบและเป็นทางออกที่ไม่จีบ ผู้คนสามารถใช้ SVN ต่อไปได้อย่างมีความสุขและฉันจะไม่เสียขั้นตอนการทำงานและไม่มีเครื่องมือ

ตอนนี้ ... พวกบางคนมาพร้อมกับ Mercurial ดีสำหรับพวกเขาพวกเขามีเหตุผล แต่ฉันไม่สามารถหา GIT HG นอกสถานที่ได้เลย ฉันไม่ต้องการเปลี่ยนมาใช้ HG แต่ฉันยังต้องทำงานร่วมกับที่เก็บของพวกเขา

พวกคุณคนใดรู้วิธีแก้ปัญหาง่ายๆสำหรับเรื่องนี้?


4
hg-git ทำงานได้ทั้งสองทิศทาง
Derek Mahar

1
คำตอบโดย @dubiousjim มีประโยชน์มากกว่าครอบคลุมและทันสมัยกว่าสองอันดับปัจจุบันซึ่งชี้ไปที่ repos ที่ไม่มีผู้ดูแลหรือให้คำแนะนำที่ล้าสมัย แต่การปรับปรุงเพิ่มเติมสำหรับคำถามนี้จะมีประโยชน์มาก
nealmcb

คำตอบ:


60

อัปเดตตั้งแต่มิถุนายน 2555 ปัจจุบันมีวิธีการทำงานร่วมกันของ Git / Hg ต่อไปนี้เมื่อผู้พัฒนาต้องการทำงานจากด้าน git:

  1. ติดตั้ง Mercurial และขยาย HG-คอมไพล์ easy_install hg-gitคุณสามารถทำหลังใช้จัดการแพคเกจของคุณหรือกับ จากนั้นตรวจสอบให้แน่ใจว่าสิ่งต่อไปนี้อยู่ใน ~ / .hgrc ของคุณ:

    [extensions]
    hggit = 
    

    คุณอาจเห็นข้อมูลอ้างอิงบางส่วนที่พูดถึงการระบุbookmarksส่วนขยายที่นี่เช่นกัน แต่สร้างขึ้นใน Mercurial ตั้งแต่ v 1.8 นี่คือเคล็ดลับบางอย่างเกี่ยวกับการติด HG-คอมไพล์บน Windows

    เมื่อคุณมี HG-คอมไพล์คุณสามารถใช้คำสั่งประมาณเช่นAbderrahim Kitouni โพสต์ดังกล่าวข้างต้น วิธีนี้ได้รับการกลั่นและเอ็นดูตั้งแต่ปี 2009 แม้ว่าและมีเสื้อคลุมมิตรGit-HG-อีกครั้ง สิ่งนี้ใช้ไดเรกทอรีระดับบนเป็นไดเรกทอรีที่ใช้งานได้สำหรับทั้ง Mercurial และ Git ในเวลาเดียวกัน มันสร้างบุ๊คมาร์ค Mercurial ที่มันจะซิงค์กับส่วนปลายของdefault(ไม่มีชื่อ) สาขาในที่เก็บ Mercurial และมันจะอัพเดทสาขา Git ท้องถิ่นจากบุ๊คมาร์คนั้น

  2. git-remote-hgเป็นกระดาษห่อหุ้มที่แตกต่างกันไปตามhg-gitส่วนขยายMercurial นอกจากนี้ยังใช้git-remote-helpersโพรโทคอล (ด้วยเหตุนี้ชื่อ) มันใช้ไดเรกทอรีระดับบนสุดสำหรับไดเรกทอรีการทำงาน Git เท่านั้น มันทำให้ที่เก็บ Mercurial ว่าง มันยังคงเป็นพื้นที่เก็บข้อมูล Git ที่สองเพื่อทำการประสานระหว่าง Git และ Mercurial ปลอดภัยยิ่งขึ้น

  3. Git-hgสคริปต์ (เดิมเก็บรักษาไว้ที่นี่ ) ใช้วิธีการที่แตกต่างกันขึ้นอยู่กับการhg-fast-exportจากโครงการได้อย่างรวดเร็วส่งออก เช่นเดียวกับวิธีที่ 2 สิ่งนี้จะเก็บที่เก็บ Mercurial และที่เก็บ Git เปลือยเพิ่มเติม

    สำหรับการดึงเครื่องมือนี้จะไม่สนใจที่คั่นหนังสือของ Mercurial และนำเข้าทุกสาขา Mercurial ที่มีชื่อเข้าสู่สาขา Git และจะเปลี่ยนเป็นสาขา Mercurial เริ่มต้น (ไม่มีชื่อ) เป็นหลัก

    ความเห็นบางคนกล่าวถึงเครื่องมือนี้ว่าเป็น hg-> git เท่านั้น แต่มันอ้างว่าได้รวมอยู่ใน git-> hg push support เมื่อวันที่ 7 ธันวาคม 2554 ดังที่ฉันอธิบายในการทบทวนเครื่องมือเหล่านี้แม้ว่าวิธีที่เครื่องมือนี้พยายามนำไปใช้ ดูเหมือนจะไม่สามารถใช้การสนับสนุนได้

  4. นอกจากนี้ยังมีโครงการอื่นที่เรียกว่าคอมไพล์ระยะไกล-hg ซึ่งแตกต่างจากรุ่นที่ระบุไว้ข้างต้นอันนี้ไม่ได้พึ่งพา hg-git แต่แทนที่จะเข้าถึง Mercurial Python API โดยตรง ในขณะนี้การใช้มันยังต้องมีคอมไพล์เวอร์ชันของ patched ฉันยังไม่ได้ลอง

  5. ในที่สุดเทเลอร์เป็นโครงการที่เพิ่มขึ้นระหว่างความหลากหลายของ VCS ที่แตกต่างกัน ดูเหมือนว่าการพัฒนาสิ่งนี้จะไม่เกิดขึ้นอย่างต่อเนื่อง

สามวิธีแรกเหล่านี้ดูมีน้ำหนักเบาพอที่จะโน้มน้าวให้ฉันตรวจสอบ ฉันจำเป็นต้องปรับแต่งพวกเขาในบางวิธีเพื่อให้พวกเขาทำงานในการตั้งค่าของฉันและฉันเห็นวิธีที่จะปรับแต่งพวกเขาต่อไปเพื่อปรับปรุงพวกเขาแล้วฉัน tweaked พวกเขายังคงต่อไปเพื่อให้พวกเขาทำงานเหมือนกันมากขึ้น พวกเขามีประสิทธิภาพมากขึ้น จากนั้นฉันคิดว่าคนอื่นอาจต้องการปรับแต่งเหล่านี้ด้วยเพื่อทำการประเมินเดียวกัน ดังนั้นฉันจึงสร้างแพ็คเกจซอร์สที่จะช่วยให้คุณสามารถติดตั้งเวอร์ชันของเครื่องมือสามอย่างแรก ควรดูแลการติดตั้งhg-fast-exportชิ้นส่วนที่จำเป็น (คุณต้องติดตั้งhg-gitด้วยตัวเอง)

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

ดังที่ฉันได้กล่าวไว้ข้างต้นในการประเมินเครื่องมือเหล่านี้ฉันมาถึงข้อสรุปที่git-hgใช้สำหรับดึงจาก Mercurial เท่านั้นไม่ใช่เพื่อผลักดัน

มีความเกี่ยวข้องต่อไปนี้เป็นคู่มือเปรียบเทียบ / แปลที่มีประโยชน์ระหว่าง Git และ Mercurial ในบางกรณีมีการกำหนดเป้าหมายไปที่ผู้ใช้ที่รู้จัก Git อยู่แล้ว:


2
ฉันใช้เมธอด # 2 ด้วยตัวเองหรือใช้เวอร์ชันที่ปรับแต่งแล้ว โดยรวมแล้วสำหรับฉันดูเหมือนว่าวิธีที่เชื่อถือได้และยืดหยุ่นที่สุด (ของที่ฉันพยายาม) ดูลิงก์ไปยังรีวิว / แพ็คเกจของฉันสำหรับรายละเอียด
dubiousjim

ได้. Kiln Harmony นั้นยอดเยี่ยมมาก ฟรีสำหรับ devs เดี่ยวเช่นกัน
CAD bloke

114

มี git-remote-hg ใหม่ที่ให้การสนับสนุนดั้งเดิม:

รองรับ Bridge ใน Git สำหรับ Mercurial และ Bazaar

เพียงแค่คัดลอกgit-remote-hgไปยัง $ PATH ของคุณทำให้สามารถใช้งานได้และนั่นก็คือไม่มีการพึ่งพา (นอกเหนือจาก Mercurial):

git clone hg::https://www.mercurial-scm.org/repo/hg/

คุณควรจะสามารถดันและดึงออกมาได้ราวกับว่ามันเป็นที่เก็บ Git ดั้งเดิม

เมื่อคุณกดสาขา Git ใหม่บุ๊คมาร์ค Mercurial จะถูกสร้างขึ้นสำหรับพวกเขา

ดูวิกิ git-remote-hgสำหรับข้อมูลเพิ่มเติม


14
เฮ้เฟลิเป้นั่นไม่จริงอย่างแน่นอนคุณต้องมี Mercurial เวอร์ชันที่ใช้การได้ดี
แอนทอนเพลิสเซ

5
ตรวจสอบให้แน่ใจว่าคุณตั้งชื่ออย่างถูกต้องgit-remote-hg(เช่นไม่มี.pyคำต่อท้าย)
schmmd

3
ใช้งานได้เมื่อที่เก็บ hg เป็นแบบ submodule เช่นกัน
Clayton Stanley

4
ทราบว่าคุณต้องหลาม 2. ดังนั้นถ้าหลาม 3 เป็นค่าเริ่มต้นในระบบของคุณ (หรือถ้าคุณทำไม่ได้เรียกใช้ Debian และต้องการที่จะเป็นหลักฐานในอนาคต) #!/usr/bin/env python2เปลี่ยนบรรทัดแรกที่
Kevin Cox

4
โปรดทราบว่าตั้งแต่ git-remote-hg ของ Mercurial 3.2 @FelipeC ไม่ทำงานอีกต่อไป ( github.com/felipec/git-remote-hg/issues/27 ) นั่นคือจนกว่าส้อมที่แก้ไขปัญหาจะถูกผสาน (ดูgithub .com / fingolfin / git-remote-hg )
Cimbali

106

คุณควรจะสามารถใช้ hg-gitได้

hg clone <hg repository>

แก้ไข ~/.hgrcและเพิ่ม:

[extensions]
hgext.bookmarks =
hggit =

สร้างบุ๊คมาร์คเพื่อคุณจะได้ master git:

cd <repository>
hg bookmark -r default master

แก้ไข .hg/hgrcในที่เก็บและเพิ่ม:

[git]
intree = true

ตอนนี้คุณสามารถสร้างที่เก็บ git:

hg gexport

และคุณสามารถใช้ไดเรกทอรีผลลัพธ์เป็นโคลนคอมไพล์ได้ การดึงจาก Mercurial จะเป็น:

hg pull
hg gexport

และผลักดันให้ Mercurial:

hg gimport
hg push

(ใช่คุณต้องใช้ hg กับเวิร์กโฟลว์นี้ แต่การแฮ็คของคุณจะเป็น git ทั้งหมด)

ป.ล. หากคุณมีปัญหากับเวิร์กโฟลว์นี้โปรดยื่นข้อบกพร่อง


3
อย่าลืมเรียกใช้ easy_install hg-git ก่อน
Christian Oudard

1
ไม่ใช่สิ่งที่ฉันต้องการ แต่ก็ยังทำได้ ขอบคุณ
Hugo Sereno Ferreira

3
เพียง fyi หลังจากทำงานผ่านกระบวนการนี้เพียงครั้งเดียวใน repo hg ท้องถิ่น (และทำอะไรผิดพลาด) ฉันไม่สามารถโคลน repo ที่เกิดขึ้นโดยใช้คอมไพล์ได้ ฉันต้อง "hg clone" แหล่งที่มา hg repo ทำตามขั้นตอนใน repo hg ใหม่แล้ว git clone hg repo ใหม่
Rocky Burt

1
ฉันได้รับสิ่งนี้เมื่อพยายามที่จะออกgit statusคำสั่งสถานะ $ git ร้ายแรง: การดำเนินการนี้จะต้องทำงานในแผนผังการทำงานนี่คือหลังจากที่ฉันออกhg gexportในพื้นที่เก็บข้อมูล hg ที่ลอกแบบใหม่ อะไรคือสิ่งที่เป็นไปได้ในการหลีกเลี่ยงพื้นที่เก็บข้อมูลเปล่า? ปรับปรุง เห็นได้ชัดว่าข้อเสนอแนะของ Rock Burt ทำงานได้ ขอบคุณ
yesudeep

1
@ThaDon ฉันมีปัญหาเดียวกัน เห็นได้ชัดว่า repo git ถูกสร้างขึ้นเป็น. hg / git ทางออกคือ 'ln -s .hg / git .git'
mb14

15

คุณสามารถลองใช้hg2gitซึ่งเป็นสคริปต์ python และเป็นส่วนหนึ่งของการส่งออกอย่างรวดเร็วซึ่งคุณสามารถดูได้ที่http://repo.or.cz/w/fast-export.git http://repo.or.cz/w/fast-export.git

คุณจะต้องทำการติดตั้ง Mercurial


4
นี่เป็นการแปลง repo hg ให้เป็น repo git ขอบคุณมาก!
reconbot

สคริปต์นี้ล้มเหลวสำหรับฉัน แต่ต้นฉบับhg-fast-exportทำงานดี
อังเดร

ผมคิดว่าในปัจจุบันยื้อสคริปต์เพื่อhg-fast-export hg2gitฉันไม่ได้ติดตามมันทั้งหมด โปรดทราบว่าเครื่องมือเหล่านี้อนุญาตเฉพาะการเปลี่ยนจาก Hg-> Git ไม่ใช่การย้อนกลับ
dubiousjim

9

เนื่องจาก hg-git เป็นสะพานสองทางจึงช่วยให้คุณสามารถผลักดันเซ็ตการแก้ไขจาก Git ไปยัง Mercurial


6

HG-Git Mercurial ปลั๊กอิน ยังไม่ได้ลองด้วยตัวเอง แต่อาจคุ้มค่าที่จะเช็คเอาท์


7
นี่คือปลั๊กอินที่ช่วยให้ผู้ใช้ Mercurial สามารถกดและดึงจาก repos git ไม่ใช่วิธีอื่น ๆ ซึ่งเป็นสิ่งที่ OP ต้องการ
sykora

1
@ sykora มันสามารถใช้เพื่อผลักดันการทำงานร่วมกันจากทิศทางย้อนกลับได้เช่นกัน ดูเครื่องมือบางอย่างที่ฉันแสดงรายการไว้ในคำตอบของฉัน
dubiousjim

6

ฉันประสบความสำเร็จอย่างมากกับ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 ที่ไม่มีชื่อ


ดูเหมือนว่าgit-hgจะใช้ได้เฉพาะเมื่อดึงออกมาจาก Hg ไม่ใช่เพื่อดัน (ดูคำอธิบายที่ฉันลิงก์ไว้ในคำตอบของฉัน) คุณพบวิธีที่จะใช้งานได้สำเร็จทั้งสองทิศทางหรือไม่? สำหรับพื้นที่เพิ่มเติมเทคนิคทั้งหมดที่ฉันคุ้นเคยกับการทำงานกับ dir + สำเนา git db / metadata + สำเนา hg db / metadata หนึ่งสำเนา การเพิ่มสำเนาที่สองของ git db / metadata นั้นเกี่ยวข้องกับการใช้งานดิสก์มากขึ้นใช่ แต่เมื่อเปรียบเทียบกันแล้วมันก็ไม่ได้แย่เท่าที่ควร
dubiousjim

@dubiousjim ความต้องการของฉันเต็มไปด้วยการดึง / ดึงข้อมูลการทำงานและฉันไม่เคยทดสอบการกด ฉันเชื่อถือเอกสาร แต่หลังจากตรวจสอบคำอธิบายของคุณตอนนี้ฉันเชื่อว่าgit-hgมันไม่เหมาะสำหรับการผลักดัน ฉันแก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้นซึ่งpushไม่เสถียรพอ
Mikko Rantalainen

น่าเสียดายที่ฉันคิดว่าอาจมีวิธีใช้การพุชที่ฉันไม่เห็น
dubiousjim

1
+1 สำหรับการเน้นความไม่ตรงกันของอิมพีแดนซ์และสิ่งที่ต้องมองหา
matt wilkie

3

ได้ลอง hggit แล้ว ได้ผลสำหรับฉันเนื่องจากฉันต้องรับมือกับงานของ git'ers และ hg'ers โดยเฉพาะอย่างยิ่งสำหรับรีวิวนี้เป็นสิ่งที่ดี

ปัญหา / คำเตือนเล็กน้อยในหัวข้อนั้น:

ฉันพยายามโคลนที่เก็บเคอร์เนล linux ที่เสถียรด้วย hg ที่เก็บเหล่านี้เก็บรักษาไว้ในคอมไพล์และโดยทั่วไปจะมีไฟล์จำนวนมากอยู่ในนั้น

มันช้ามาก ใช้เวลา 2 วันในการโคลนอย่างสมบูรณ์และอัปเดตสำเนาที่ใช้งานได้


ดูเหมือนว่าจะดีขึ้น --- การชำระเงินของฉันทำงานเป็นเวลาประมาณหกชั่วโมงและอ้างว่ามีอีกเก้าเท่านั้นที่จะไป ...
David Given

ฉันเอามันกลับมา ตอนนี้ใช้งานมาแล้วประมาณ 25 ชั่วโมงและยังคงอ้างว่ามีอีกเก้าตัวเท่านั้นที่จะไป สองวันคุณพูด
เดวิดให้

1
ฉันพบว่า - การลองครั้งแรกของฉันไม่ได้ผลเลย - ฉันคิดว่ามันเป็นข้อผิดพลาด แต่ไม่เคยวิเคราะห์เลยว่าในการลองครั้งที่สองของฉัน - ด้วยการปรับปรุง hg-git ใช้เวลาเกือบ 50 ชั่วโมงใน Mac Book ของฉัน Pro (2.66GHz, 8 Gig RAM)
Wizz

39 ชั่วโมงแล้วเพียง 11 ไป! Quad core AMD Phenom มันกำลังคืบหน้าซึ่งเป็นสาเหตุที่ฉันปล่อยให้มันรัน (ส่วนขยายของแถบความคืบหน้า hg เป็นสิ่งที่ไม่ควรพลาด) มันสลับกันระหว่างการตรึง CPU หนึ่งตัวและไม่ใช้ CPU เลยและเข้าถึงดิสก์ได้มากมาย
เดวิดให้

มีใครทดสอบหรือไม่ว่าประสิทธิภาพที่ไม่ดีที่เกิดจากhggitหรือhgช้าเกินไปที่จะใช้งานได้กับโครงการขนาดเคอร์เนลโดยทั่วไป
Mikko Rantalainen

1

ฉันได้ลองgit-hg ของ cosminและabitget git-hg-againทั้งคู่ในrepo hg repoมันดูเหมือนว่าประการต่อมาคำสั่งของการผสานกันในอดีตเป็นบิตแบบสุ่ม คุณสามารถดูได้จากภาพหน้าจอด้านล่าง

กราฟประวัติการผสานของ mutt ที่นำเข้าโดยgit-hg ของ cosmin :

ป้อนคำอธิบายรูปภาพที่นี่

กราฟประวัติการผสานของ mutt ที่นำเข้าโดยabitget's git-hg-again :

ป้อนคำอธิบายรูปภาพที่นี่

กราฟประวัติ actuall ที่พล็อตโดย hgk บนที่เก็บ hg ของ mutt:

ป้อนคำอธิบายรูปภาพที่นี่

ดังที่คุณเห็นจากด้านบนกราฟที่สองโดยabitget's git-hg-อีกครั้งนั้นใกล้เคียงกับกราฟ hgk ดั้งเดิมมากและสะท้อนถึงเวิร์กโฟลว์ที่แท้จริงของ mutt

หนึ่งข้อเสียเปรียบของ git-hg- อีกครั้งที่ฉันพบคือมันไม่ได้เพิ่มรีโมต 'hg' แทนที่จะนำเข้า refs ทั้งหมดเป็นแท็กท้องถิ่น git-hg มีรีโมต 'hg' ที่ยอดเยี่ยมแสดงถึง repo hg upstream


1
สำหรับฉันแล้วความแตกต่างระหว่างรุ่นโดย cosmin และ abourget นั้นเป็นคำสั่งของผู้ปกครองในการรวมกัน เครื่องมือสร้างภาพประวัติศาสตร์ที่ดี (เช่นgitk) ควรจะสามารถแสดงประวัติทั้งสองเหมือนกัน สิ่งเดียวที่ขาดหายไปอย่างเห็นได้ชัดคือสาขาhg/stableในรุ่นโดย abourget ฉันเดาว่ามันเป็นเรื่องระหว่างกิ่งที่มีชื่อกิ่งที่ไม่มีชื่อและบุ๊กมาร์กใน Mercurial
Mikko Rantalainen

0

สองทาง HG-คอมไพล์ (และ Git-คอมไพล์ HG-hg) ซิงค์ยังเป็นไปได้ด้วยบริการGit-hg กระจก มันใช้ hg-git (ท่ามกลางคนอื่น ๆ ) เบื้องหลังและรหัสของมันก็เป็นโอเพ่นซอร์ส


คำเตือน : ฉันมาจาก บริษัท ที่อยู่เบื้องหลังมัน

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