ฉันไม่คาดหวังว่านี่จะเป็นคำตอบที่ชนะ แต่เป็นสถานการณ์ที่ผิดปกติ กล่าวถึงในกรณีที่มีคนอื่นที่ไม่ใช่ฉันวิ่งเข้ามา
วันนี้ฉันได้รับข้อความ "กำลังรอการล็อกที่เก็บ" บนคำสั่ง hg push
เมื่อฉันฆ่าคำสั่ง Hung hg ฉันไม่เห็น. hg / store / lock
เมื่อฉันค้นหา. hg / store / lock ในขณะที่คำสั่งหยุดทำงานจะมีอยู่ แต่ lockfile ถูกลบเมื่อคำสั่ง hg ถูกฆ่า
เมื่อฉันไปที่เป้าหมายของการผลักดันและดำเนินการดึง hg ไม่มีปัญหา
ในที่สุดฉันก็รู้ว่า ID กระบวนการในการกด hg คือข้อความรอการล็อคถูกเปลี่ยนทุกครั้ง ปรากฎว่า "hg push" กำลังรอการล็อคที่จัดขึ้นเอง (หรืออาจเป็น subprocess ฉันไม่ได้ตรวจสอบเพิ่มเติม)
ปรากฎว่าทั้งสองพื้นที่ทำงานลองเรียกพวกเขาว่า A และ B มีต้นไม้. hg ที่ใช้ร่วมกันโดย symlink:
A/.hg --symlinked-to--> B/.hg
นี่ไม่ใช่สิ่งที่ดีที่จะทำกับ Mercurial Mercurial ไม่เข้าใจแนวคิดของพื้นที่ทำงานสองแห่งที่ใช้พื้นที่เก็บข้อมูลร่วมกันร่วมกัน อย่างไรก็ตามฉันเข้าใจว่ามีใครบางคนที่มา Mercurial จาก VCS อื่นอาจต้องการสิ่งนี้ (Perforce ทำได้แม้ว่าจะไม่ใช่ DVCS แต่รายงาน Bazaar DVCS สามารถทำได้) ฉันรู้สึกประหลาดใจที่ REP-ROOT / .hg ทำงานร่วมกันได้แม้ว่ามันจะดูเหมือนว่ายกเว้น