มี repo Git และ Mercurial ในไดเรกทอรีเดียวกัน


11

ฉันจะอธิบายปัญหาของฉัน

ฉันกำลังใช้การติดตั้งแบบ gitorious โดยใช้ git ฉันต้องการเริ่มทดสอบ FogBugz และ Kiln จาก Fog Creek ซึ่งใช้ Mercurial ฉันต้องการอย่างน้อยสักครู่ในขณะที่การพัฒนาอย่างต่อเนื่องโดยใช้โซลูชั่นทั้งสอง

ไม่มีใครทราบถึงผลกระทบที่ร้ายแรงในระยะยาวของการมีคอมไพล์และ repo Mercurial ในไดเรกทอรีเดียวกัน หรือมีวิธีที่ดีกว่าในการทำให้เซิร์ฟเวอร์คอมไพล์และ Mercurial ซิงค์กัน

ฉันเคยลองด้วย repo ทดสอบและฉันไม่เห็นปัญหาใด ๆ

ขอบคุณสำหรับความช่วยเหลือ


1
ฉันไม่คิดว่าจะมีปัญหามากเพราะทั้งคู่ต่างจาก.svnไฟล์svn
Josh K

คำตอบ:


8

ฉันพบว่าสะพาน hg-gitสามารถใช้งานได้ในทิศทางอื่น (เปิดเผยบางสิ่งใน Github ที่เดิมสร้างขึ้นโดยใช้ Mercurial สำหรับการควบคุมแหล่งข้อมูล) โดยทั่วไปคุณ "เพียงแค่" ใช้ Mercurial สร้างบุ๊กมาร์กที่เชื่อมโยง "master" กับ "default" เมื่อคุณพร้อมที่จะส่งไปยัง git repo และกด ดึงจากคอมไพล์ทำงานคล้ายกับวิธีที่คุณทำเมื่อคุณดึงจากรีโประยะไกล คุณไม่ได้ลงท้ายด้วยไฟล์. git + .hg ในสถานการณ์นี้คุณมีไฟล์ Mercurial อยู่ในกล่องของคุณเว้นแต่คุณจะย้ายไปที่ git โดยสิ้นเชิงซึ่งในกรณีนี้คุณอาจจะทำการคอมไพล์ git ในรูปแบบใหม่ ไดเรกทอรี

มีโครงการที่คล้ายกันสำหรับผู้ใช้คอมไพล์ที่ต้องการที่จะผลักดัน / ดึงจากที่เก็บ Mercurial แต่ฉันไม่ได้มีประสบการณ์โดยตรงกับมัน ดูhttps://github.com/offbytwo/git-hg

นอกเหนือจากศักยภาพของการตรวจสอบโดยบังเอิญในโฟลเดอร์ที่ซ่อนอยู่มากมายจากระบบควบคุมแหล่ง "อื่น ๆ " ของคุณฉันไม่เห็นปัญหาจริงใด ๆ กับการทำ hg init ใน git repo; ดูเหมือนว่าฉันจะใช้สะพานน้อยลงและเลือกเวลาที่จะผลักดันไปยังระบบ dvcs อื่นอย่างชัดเจน


ฉันพบว่า hg-git ได้รับความนิยมเล็กน้อยและพลาดไปกับ SSH และมันก็สนุกกว่าการตั้งค่า คุณสามารถเรียกใช้ไคลเอนต์ DVCS ทั้งสองบนเครื่องเดียวกันโดยไม่มีปัญหา ในความเป็นจริงถ้าคุณใช้ตัวควบคุมแหล่งหนึ่งและอีกตัวหนึ่งที่จะผลักดันไปยังการผลิต (Azure, Appharbor เป็นต้น) สิ่งนี้สามารถทำงานได้ดี
CAD bloke

ดูที่ภายใต้โฟลเดอร์. hg hg-git สร้างโฟลเดอร์. git ไว้ที่นั่นเว้นแต่คุณจะระบุ [git] intree = true ในไฟล์. hgrc / ini ของคุณเพื่อรับข้อมูล Mercurial
CAD bloke

9

ฉันใช้ทั้ง Mercurial และ Git ในโครงการเดียวกันในไดเรกทอรีทำงานเดียวกัน สิ่งที่ยอดเยี่ยมเกี่ยวกับการใช้ DVCS ทั้งสองนี้คือพวกเขาทั้งสองมีเพียงโฟลเดอร์เดียว (.git / .hg) สำหรับ confs และ blobs และต้นไม้และสิ่งต่าง ๆ

เพียงใส่. hg ใน. gignignore (และ. git เป็น. hgignore) และคุณเป็นมากกว่าที่จะไป

แน่นอนว่าคุณต้องเพิ่มงานเป็นสองเท่าเมื่อทำ แต่ฉันไม่พบว่าจะจัดการได้ยาก

การตั้งค่าในความคิดของฉันนี้มีความน่าเชื่อถือมากกว่าการใช้โซลูชันบริดจ์ใด ๆ (ฉันไม่ชอบพวกเขาตั้งแต่สยองขวัญที่ฉันมีกับ git-svn)


คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่คุณประสบความสำเร็จได้หรือไม่? ฉันมีคำถามที่นี่stackoverflow.com/questions/14486600/ …ซึ่งคุณประสบความสำเร็จ ความช่วยเหลือใด ๆ ที่เป็นที่นิยม :)
akdsouza
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.