เป็นไปได้ไหมที่จะเปิดสาขาที่ปิดแล้วใน Mercurial?


132

ฉันเข้าใจว่าเป็นไปได้ที่จะปิดสาขาที่มีชื่อใน Mercurial เพื่อที่จะไม่ปรากฏในhg branchesรายการ:

hg commit --close-branch -m 'close badbranch, this approach never worked'

เป็นไปได้ไหมที่จะเปิดสาขาใหม่ในภายหลังหากจำเป็น?


13
คุณควรทดลองใช้วิธีที่ดีที่สุดในการเรียนรู้คือการทดลองและเนื่องจากที่เก็บมีราคาถูกกับ Hg เพียงแค่พยายามอย่างเต็มที่
Lasse V.Karlsen

1
ความลับเล็ก ๆ น้อย ๆ ที่สกปรก: "branch" ใน Hg speak เป็นอีกวิธีหนึ่งในการพูดว่า "ป้ายข้อความที่เกี่ยวข้องกับการกระทำ" "สาขา" สามารถมีส่วนหัวที่แตกต่างกันไปยังการกระทำต่างๆที่ไม่เกี่ยวข้องกัน
user2864740

คำตอบ:


164

คุณสามารถทำได้ hg updateไปที่สาขาที่ปิดไปแล้วทำอีกสาขาหนึ่งhg commitและจะเปิดใหม่โดยอัตโนมัติ

closedธงเป็นเพียงการใช้ในการกรองจากสาขาที่ปิดจากhg branchesและhg headsจนกว่าคุณจะใช้--closedตัวเลือก - มันไม่ได้ป้องกันคุณจากการใช้กิ่งไม้


20
การคอมมิตจะไม่ทำอะไรเว้นแต่จะมีบางอย่างที่ต้องกระทำจริงๆดังนั้นคุณอาจต้องทำการเปลี่ยนแปลงโดยไม่มีเหตุผลเพื่อให้มันเกิดขึ้น
Francis Upton IV

1
ขอขอบคุณที่ชี้ให้เห็น - ฉันคิดว่าการเปลี่ยนแปลงเป็นนัยโดยการกระทำ แต่แน่นอนว่าหากคุณเพียงแค่ต้องการลบแฟล็กปิดคุณจะไม่สามารถทำได้โดยไม่มีการเปลี่ยนแปลง
Tim Delaney

3
แท็กเพียงพอที่จะทำให้คอมมิชชันได้
devlord

สิ่งนี้อาจใช้งานได้จากอินเทอร์เฟซบรรทัดคำสั่งฉันยังไม่ได้ลอง แต่ TortoiseHg จะไม่ยอมให้คุณอัปเดตเป็นสาขาที่ปิด หากคุณพยายามทำเช่นนั้นปุ่มอัปเดตจะถูกปิดใช้งานเพื่อให้สิ่งนี้ใช้งานได้ฉันต้องอัปเดตไปยังสาขาก่อนที่จะปิดชุดการเปลี่ยนแปลง (ผู้ปกครองอย่างมีประสิทธิภาพ) จากนั้นอัปเดตเป็นชุดการเปลี่ยนแปลงปิด สิ่งที่แปลกคือเมื่อคุณอัปเดตเป็นพาเรนต์ TortoiseHg จะอ้างว่าชุดการเปลี่ยนแปลงที่ปิด (ลูกหลาน) คือพาเรนต์ อย่างไรก็ตามมันใช้ได้ดีเมื่อคุณกระโดดผ่านห่วงที่เหมาะสม
DaveN59

ใช้มัน (บรรทัดคำสั่งผ่านเทอร์มินัลใน phpstorm) และทำงานได้อย่างมีเสน่ห์ขอบคุณ
Mathieu Dierckx

15

คุณสามารถเปิดสาขาใหม่ได้โดยใช้แฟล็ก "-f" เมื่อ "สร้าง" สาขา

ไม่คำสั่งนี้จะสร้างสาขาใหม่ที่มีชื่อเดียวกัน

แค่ลืมว่าปิด สลับไปที่สาขาทำการเปลี่ยนแปลงและคอมมิต มันจะเปิดใหม่โดยอัตโนมัติ เมื่อคุณทำเสร็จแล้วคุณสามารถปิดได้อีกครั้ง


ฉันคิดว่าแตกต่างจาก Git สาขาที่มีชื่อ Mercurial นั้นเป็นแบบถาวรและดังนั้นชื่อสาขานั้นจึงไม่สามารถใช้ซ้ำได้ ฉันสับสนอะไร มีหลายหัวสำหรับสาขาเดียวกับที่เรากำลังพูดถึงหรือไม่?
Nate Cook

2

ลองดังต่อไปนี้:

hg pull && hg update branch_name

ตอนนี้ทำการเปลี่ยนแปลงเล็กน้อยกับไฟล์ใดไฟล์หนึ่งแล้วจึงคอมมิต

 hg commit -m "minor change"

แล้วดันมัน

hg push -b . 

ตอนนี้คุณควรจะสามารถทำงานได้ตามปกติ


-3

ลองทำตามนี้

เปลี่ยนไปใช้สาขาที่ปิดก่อนดำเนินการ (hg ขึ้น closed_branch)

hg เซนต์

สัมผัส a

เพิ่ม

hg กระทำ -m 'เปิดสาขาที่ปิดอีกครั้ง'

สิ่งนี้จะเปิดสาขาที่ปิดไปแล้วอีกครั้ง


12
นี่เป็นการเพิ่มไฟล์เปล่าที่ไร้ประโยชน์ลงในที่เก็บมันผิด
Rafael Piccolo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.