เมื่อเร็ว ๆ นี้มีคำถามมากมายเกี่ยวกับการข้ามการเปลี่ยนแปลงเมื่อรักษาสาขาเผยแพร่ใน Mercurial ตัวอย่างเช่น:
- Mercurial: การเปลี่ยนแปลงเฉพาะสาขาจะกลับมาอีกหลังจากการรวมหุ่น
- เหตุใด Mercurial backouts ในสาขาเดียวจึงส่งผลกระทบต่อสาขาอื่น ๆ
ตั้งแต่เปิดตัวใน 2.0 ฉันเคยสงสัยเกี่ยวกับการใช้graft
เพื่อหลีกเลี่ยงปัญหานี้ ให้ต้นไม้แก้ไขดังนี้:
A---B---C---D---E---F---G---H---I---J
E
สมมติว่าเราจำเป็นต้องสร้างสาขาที่ปล่อยข้ามการเปลี่ยนแปลงชั่วร้าย
hg update -r D
hg graft "F::J"
ให้เรา:
A---B---C---D---E---F---G---H---I---J
\
--F'--G'--H'--I'--J'
- Q1: เกิดอะไรขึ้นที่นี่? ฉันเข้าใจว่า
transplant
จะมีการสร้างแพตช์จากF::J
นั้นจึงนำไปใช้D
แต่graft
มีการกล่าวว่าจะใช้การผสาน 3 ทางแทนที่จะเป็นแพตช์ แล้ว ....... ทำงานอย่างไร? ทำไมถึงดีขึ้น?
ให้บอกว่าตอนนี้ฉันแก้ไขE
และรวมเข้ากับสาขาการเผยแพร่ของฉัน
--E2-----------------
/ \
A---B---C---D---E---F---G---H---I---J---M1
\ \
--F'--G'--H'--I'--J'---------M2--
M1 เป็นการผสานแบบตรง ไม่มีอะไรพิเศษที่นั่น M2 กำลังรวมสาขาที่มีการเปลี่ยนแปลง "เหมือนกัน" (หรืออย่างน้อยเทียบเท่า)
- Q2: คือการผสานนี้ก็ปกติ 3 วิธีการผสานการใช้
D
,J'
และM1
? - Q3: มีการจัดเก็บ / ใช้เมอร์คิวเรียลข้อมูลเพิ่มเติมเกี่ยวกับการต่อกิ่งเพื่อช่วยในการผสานหรือไม่
และในที่สุดก็...
- Q4: อะไรคือปัญหาที่อาจเกิดขึ้นกับโฟลว์เช่นนี้?