วิธีแยกสาขากับ TortoiseHG


218

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

ฉันไปรอบ ๆ และไม่พบการสนทนาในหัวข้อนี้มาก (อย่างน้อยสำหรับรุ่นล่าสุด) ดังนั้นฉันจึงต้องสมมติว่าฉันพลาดอะไรบางอย่างใช่มั้ย

อัปเดต:ดังนั้นฉันจึงตั้งค่าสถานะคำตอบของแช้ดเบิร์ชด้านล่างเพื่อตอบปัญหา "สาขาใหม่" ในขณะที่เขาชี้ให้เห็นอย่างถูกต้องคุณจะกระทำและจากนั้นคลิกที่ปุ่มสาขาเพื่อเปิดกล่องโต้ตอบการบำรุงรักษาสาขาซึ่งเป็นที่ที่คุณสร้างสาขาใหม่ ฉันอยากให้พวกเขาเลือกเมนูบริบทสำหรับเรา เมื่อคุณแยกแล้วคำถามธรรมชาติถัดไปคือวิธีผสานและนี่ก็ไม่ชัดเจนเช่นกัน ปรากฎว่าตัวเลือกนั้นถูกฝังอยู่ใน repository explorer คุณต้องเลือกส่วนหัวของสาขาอื่นคลิกขวาแล้วเลือก "รวมกับ ... "


การแตกแขนงนั้นถูกฝังไว้อย่างหนักในเวิร์กโฟลว์ที่ไม่ได้ใช้งานง่าย การแยกและการกระทำเป็นสองการดำเนินการที่แตกต่างกันมากและไม่มีเหตุผลใดที่จะฝังสาขาลึกลงไปใน UI การกระทำ ตามปกติแล้วฉันจะกระทำก่อนที่จะแยกสาขามันไม่ได้เกิดขึ้นกับฉันที่จะดูภายใต้ UI การกระทำ การแตกแขนงจะยังคงไม่มีเอกสารได้อย่างมีประสิทธิภาพแม้ในขณะที่ของกลาง 2016 ; ชาดเบิร์ชชี้ให้เห็นสิ่งที่ผ่านไปสำหรับการแยกเอกสาร ก็ยังคงน่ากลัว แต่เมื่อเขาตั้งข้อสังเกตเขาเป็นเพียงผู้ส่งสาร ...
Arclight

คำตอบ:


213

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


30
อ่าฉันเห็นว่ามันบอกว่า "การกดปุ่มนี้จะเป็นการเปิดกล่องโต้ตอบการบำรุงรักษาสาขา" ที่จริงแล้วเปิดไดอะล็อกที่ทำให้เปิดสาขาได้ แต่ฉันมีปัญหากับคำสั่ง "ตามที่ปรากฏในเอกสาร" เนื่องจากไม่มีการกล่าวถึงวิธีสร้างสาขาอย่างชัดเจนในหน้านั้น ฉันสามารถหา ฉันสงสัยว่าการแตกแขนงทำเพื่อรับการรักษาระดับที่สองใน TortoiseHg (เทียบกับเครื่องมือ Tortoise * อื่น ๆ ที่เป็นตัวเลือกเมนูบริบทชั้นหนึ่ง) :-)
Michael Tiller

31
โอ้ฉันไม่ได้พยายามที่จะดูถูกในลักษณะ "RTFM" หรืออะไรทำนองนั้นฉันแค่ต้องการวลีเพื่อเชื่อมโยงไปยังหน้าที่เกี่ยวข้องด้วย บางที "โดยนัยเกี่ยวกับเอกสาร" อาจจะเหมาะสมกว่าในสถานการณ์นี้
ชาดเบิร์ช

1
ไม่มีเหงื่อ. ฉันไม่ได้พยายามที่จะดูถูก ฉันแค่ต้องการทำให้ชัดเจนกับใครก็ตามที่เข้ามาดูลิงก์ที่คุณต้องอ่านระหว่างบรรทัดในเอกสารเพื่อรับคำตอบเนื่องจากไม่ได้กล่าวถึงอย่างชัดเจน
Michael Tiller

8
ด้วย Mercurial เวอร์ชันล่าสุดคุณต้องทำ a hg push --new-branchเพื่อพุชสาขาใหม่ไปยังที่เก็บข้อมูลระยะไกล ดูstackoverflow.com/questions/2365483สำหรับวิธีการทำเช่นนี้ใน TortoiseHg
ปีเตอร์เกรแฮม

26

ในการเริ่มต้นสาขาใหม่ด้วย TortoiseHg กด Commit ... จากนั้นเหนือ Commit ข้อความกดสาขาจากนั้น "เปิดสาขาใหม่ที่มีชื่อ:"


9

เพียงแค่ต้องการที่จะเพิ่มที่จะผลักสาขาใหม่ไปยังพื้นที่เก็บข้อมูลระยะไกลมีช่องทำเครื่องหมายบนแท็บซิงโครไนซ์ภายใต้ตัวเลือกของ "อนุญาตให้มีการผลักดันของสาขาใหม่" - คุณต้องจำไว้ว่าให้ปิดอีกครั้งในภายหลัง


8

เวลาส่วนใหญ่ใน Mercurial คุณcloneเป็นพื้นที่เก็บข้อมูลเพื่อสร้างสาขา

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

นี่อาจฟังดูราวกับว่ามันใช้พื้นที่ดิสก์จำนวนมาก แต่ในระบบปฏิบัติการส่วนใหญ่ Mercurial จะสร้างลิงก์แทนการคัดลอกไฟล์ อย่างไรก็ตามพื้นที่ดิสก์มีราคาถูกและเนื่องจากอยู่ในพื้นที่จึงค่อนข้างเร็ว

หากคุณคิดเกี่ยวกับมันการชำระเงินทุกครั้ง (ในคำศัพท์ svn) หรือ "โคลน" (ในคำศัพท์ mercurial) เป็นสาขาที่จะผสานกลับคืนดังนั้นมันจึงเป็นเหตุผลว่า clones เป็นวิธีทั่วไปในการสร้างสาขา


11
ไม่สะดวกสำหรับสาขาฟีเจอร์
หอคอย

ตกลง ถ้าคุณได้ยาวทำงาน (กึ่งถาวร) สาขาเช่นสาขารุ่น-1-มั่นคงและสาขารุ่นที่ 2 ที่มีความเสถียรคุณจะต้องการใช้ชื่อสาขา ดูเพิ่มเติมเอกสารสาขาปรอท
blokeley

11
-1 นี่คือแฮ็คที่ดีที่สุด การโคลนนิ่งสำหรับการแยกไม่ทำงานเลยถ้าคุณติดตามที่เก็บระยะไกลเนื่องจากคุณไม่สามารถผลักดันการเปลี่ยนแปลงในเครื่อง นี่หมายความว่าคุณไม่สามารถแบ่งปันสาขาของคุณกับนักพัฒนาคนอื่น ๆ ที่คุณทำงานด้วย วิธีที่ถูกต้องในการแยกสาขาคือการสร้างสาขาที่มีชื่อภายในที่เก็บของคุณ
ปีเตอร์เกรแฮม

8
การโคลนนิ่งยังคงเป็นวิธีที่หนังสือ Mercurial อย่างเป็นทางการแนะนำสาขา 'ภาพใหญ่' hgbook.red-bean.com/read/… อย่ายิงผู้ส่งสาร
blokeley

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