ฉันไม่เชื่อว่าการเปลี่ยนแปลงที่ปราศจากข้อผูกมัดนั้นเป็นสิ่งที่ไม่ดี คุณอ้างถึง "การไม่สามารถรวมกับพวกเขา" - หากคุณมีการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดกับไฟล์บางไฟล์และคุณดึงและอัปเดตการเปลี่ยนแปลงไปยังไฟล์นั้น Mercurial จะเริ่มกระบวนการผสานเช่นเดียวกับที่คุณยืนยัน การผสาน คุณหมายถึงบางสิ่งที่แตกต่างออกไปใช่ไหม
ดังนั้นสำหรับการเปลี่ยนแปลงในพื้นที่ที่คุณยังไม่ต้องการแบ่งปันกับนักพัฒนาคนอื่นคุณมีสองวิธี อย่างแรกคือการเก็บการเปลี่ยนแปลงในสำเนาการทำงานของคุณ แต่ไม่ผลักดันพวกเขาและอื่น ๆ ที่จะทำให้พวกเขาออกจากสำเนาการทำงาน สิ่งที่คุณเลือกขึ้นอยู่กับว่าคุณต้องการให้การเปลี่ยนแปลงเหล่านี้พร้อมใช้งานหรือไม่
หากคุณเก็บไว้ในสำเนาทำงานการเปลี่ยนแปลงที่เข้ามาจะทำงานได้ดีดังนั้นคุณต้องหลีกเลี่ยงการสร้างการเปลี่ยนแปลงขาออกและนั่นหมายถึงการหลีกเลี่ยงการกระทำ หากไฟล์เป็นไฟล์ใหม่นั่นเป็นเรื่องง่าย - ไม่ใช้hg add
เลย hg commit --exclude foo.txt
หากพวกเขามีการติดตามอยู่แล้วแล้วคุณโดยเฉพาะสามารถยกเว้นพวกเขาจากการกระทำด้วย หากคุณมีจำนวนมากของไฟล์ที่จะยกเว้นหรือจะไม่รวมพวกเขาจากการกระทำหลาย ๆ (เช่นการเปลี่ยนแปลงอย่างถาวรแฟ้มการกำหนดค่าท้องถิ่น) ดูที่ไม่รวมส่วนขยาย
หากคุณพร้อมที่จะย้ายการเปลี่ยนแปลงไปคุณมีตัวเลือกอีกชุดหนึ่ง สิ่งที่ง่ายที่สุดคือใช้hg diff
กับไฟล์เพื่อสร้างชุดข้อมูลแก้ไขซึ่งคุณเก็บไว้ในที่ที่ปลอดภัยจากนั้นhg patch --no-commit
นำไปใช้ชุดปะแก้ใหม่เมื่อคุณต้องการให้การเปลี่ยนแปลงกลับมา คุณสามารถทำให้ราบรื่นขึ้นได้โดยติดตั้งส่วนขยาย shelve , attic extensionหรือญาติอื่น ๆ คุณสามารถใช้ส่วนขยายของคิวได้ด้วย แต่นั่นคือการใช้ค้อนขนาดใหญ่เพื่อแคร็กอ่อนนุช คุณสามารถทำได้แม้กระทั่งยอมรับการเปลี่ยนแปลงจากนั้นอัปเดตกลับไปที่ผู้ปกครองและทำงานอื่นที่นั่นปล่อยให้การเปลี่ยนแปลงในสาขาที่ไม่ระบุชื่อที่ไม่ระบุชื่อ - hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
(แม้ว่ามันจะง่ายกว่าที่จะทำด้วยตนเอง!) จากนั้นคุณจะต้องระวังอย่าผลักดันเซ็ตการแก้ไขนั้น