โดยส่วนตัวแล้วฉันไม่ชอบคำตอบใด ๆ ที่โพสต์ไว้:
- ฉันไม่ชอบโคลนแยกทางเพราะผมชอบแต่ละโครงการจะมีเพียงหนึ่งไดเรกทอรี การทำงานกับไดเรกทอรีที่แตกต่างกันในเวลาเดียวกันทำให้ประวัติของไฟล์ล่าสุดของบรรณาธิการของฉันยุ่งเหยิง ฉันมักจะเปลี่ยนไฟล์ผิดเสมอ ฉันจึงไม่ทำแบบนั้นอีกต่อไป
- ฉันใช้
shelve
สำหรับการแก้ไขอย่างรวดเร็ว (เพียงเพื่อย้ายการเปลี่ยนแปลงที่ไม่ได้รับคำแนะนำไปยังสาขาอื่นหากฉันรู้ว่าฉันทำผิด) คุณกำลังพูดถึงวันไม่มีทางที่ฉันจะเก็บบางสิ่งไว้เป็นเวลาหลายวัน
- ฉันคิดว่า
mq
มันซับซ้อนเกินไปสำหรับสถานการณ์ธรรมดา ๆ แบบนี้
ฉันคิดว่าวิธีที่ดีที่สุดคือเพียงแค่ทำการเปลี่ยนแปลงของคุณแทนที่จะกลับไปที่ชุดการเปลี่ยนแปลงก่อนที่คุณจะเริ่มการเปลี่ยนแปลงเหล่านี้และดำเนินการจากที่นั่น มีปัญหาเล็กน้อยให้ฉันอธิบาย:
สมมติว่าคุณมีชุดการเปลี่ยนแปลง A. กว่าที่คุณจะเริ่มการเปลี่ยนแปลง ณ จุดนี้คุณต้องทิ้งไว้สักพัก ก่อนอื่นให้ทำงานของคุณ:
hg ci -m "Working on new stuff"
หากต้องการคุณสามารถเพิ่มบุ๊กมาร์กเพื่อให้กลับมาใหม่ในภายหลังได้ง่ายขึ้น ฉันสร้างบุ๊กมาร์กไปยังสาขาที่ไม่ระบุชื่อของฉันเสมอ
hg bookmark new-stuff
กลับไปที่ชุดการเปลี่ยนแปลงก่อนการปรับเปลี่ยนเหล่านี้
hg update A
จากตรงนี้คุณทำงานและสร้างชุดการเปลี่ยนแปลง C ตอนนี้คุณมี 2 หัว (B และ C) คุณจะได้รับการเตือนเมื่อคุณพยายามผลักดัน คุณสามารถผลักดันสาขาได้เพียงสาขาเดียวโดยระบุหัวหน้าสาขานั้น:
hg push -r C
หรือจะเปลี่ยนเฟสของnew-stuff
สาขาเป็นความลับก็ได้ การเปลี่ยนแปลงลับจะไม่ถูกพุช
hg phase -r new-stuff --secret --force