คำถามติดแท็ก mercurial

Mercurial เป็น DVCS แบบโอเพนซอร์สที่รวดเร็ว (Distributed Version Control System)

4
ฉันจะวางการเปลี่ยนแปลงที่ไม่ได้ผูกมัดไว้ในขณะที่ทำงานอย่างอื่นได้อย่างไร
หากฉันมีการเปลี่ยนแปลงที่ไม่ได้ผูกมัดจำนวนมากและต้องการแยกมันออกไปในขณะที่ทำงานอย่างอื่นแทนจากนั้นหลังจากนั้น (fi หลังจากผ่านไปหลายวัน) กลับมาที่มันและดำเนินการต่อ อะไรคือขั้นตอนการทำงานที่ง่ายที่สุดในการทำสิ่งนี้ (จนถึงตอนนี้ฉันมีประสบการณ์กับฟังก์ชันพื้นฐานของ Mercurial เท่านั้น) วิธีปกติของฉันคือการสร้างสาขาใหม่โดยใช้การโคลน แต่อาจมีวิธีที่ดีกว่านี้
98 mercurial 

2
การแก้ไขความขัดแย้ง: จะยอมรับการเปลี่ยนแปลงโดยอัตโนมัติได้อย่างไร?
เมื่อรวมการเปลี่ยนแปลงที่ขัดแย้งกันโดยใช้hg mergeMercurial จะแทรกชุดของเครื่องหมายลงในไฟล์ที่จะรวมในสำเนาการทำงานของฉันดังนี้: <<<<<<< local version = 0.2 ======= version = 0.1 >>>>>>> other จากนั้นฉันแก้ไขไฟล์ทั้งหมดที่ทำเครื่องหมายเป็น U ด้วยตนเองจากรายการที่สร้างขึ้นจากhg resolve --all -lนั้นฉันก็บอก mercurial ว่าฉันได้แก้ไขแล้วโดยhg resolve -m file1 file2 file3 ... อย่างไรก็ตามในหลาย ๆ สถานการณ์ฉันต้องการยอมรับการเปลี่ยนแปลงเฉพาะของฉันหรืออย่างเดียวในไฟล์ที่ขัดแย้งกัน ฉันกำลังคิดที่จะสร้างสคริปต์ sed / awk / อะไรก็ตามที่มีชื่อว่าง่าย ๆ สองตัวaccept-theirs.shและaccept-my.shหรือมีวิธีใดที่ "เหมาะสม" ในการทำ
97 mercurial 

11
ด้วย Mercurial ฉันจะ "บีบอัด" ชุดการเปลี่ยนแปลงให้เป็นชุดเดียวก่อนที่จะผลักดันได้อย่างไร
สมมติว่าฉันมีที่เก็บ Mercurial ในพื้นที่และระยะไกล ตอนนี้ฉันเริ่มทำงานกับฟีเจอร์หนึ่ง ฉันทำงานกับมันและเมื่อฉันคิดว่าเสร็จแล้วฉันก็ยอมรับชุดการเปลี่ยนแปลง การทดสอบอีกเล็กน้อยฉันพบว่าฉันสามารถปรับปรุงคุณสมบัตินี้เพิ่มเติมได้โดยการปรับแต่งบางอย่างในโค้ด ฉันทำการเปลี่ยนแปลงและกระทำ 20 นาทีต่อมาฉันพบว่ามีข้อบกพร่องในฟีเจอร์ใหม่นี้ดังนั้นฉันจึงแก้ไขและยืนยันเช่นกัน ตอนนี้ฉันมีชุดการเปลี่ยนแปลง 3 ชุดที่ฉันต้องการส่งไปยังที่เก็บระยะไกลเป็นชุดการเปลี่ยนแปลงหนึ่งชุดที่มีข้อความ "การใช้คุณลักษณะ X" ฉันจะทำสิ่งนี้ได้อย่างไรโดยไม่ต้องยุ่งยากมากนัก ฉันเชื่อว่าฉันสามารถทำได้ด้วยแพตช์ แต่ดูเหมือนว่าจะต้องทำงานมาก

7
ลบชุดการเปลี่ยนแปลงในเครื่องทั้งหมดและเปลี่ยนกลับเป็นโครงสร้าง
ฉันใช้ Mercurial และฉันมีปัญหาในท้องถิ่นอย่างมากโดยมีสามหัว ฉันไม่สามารถผลักดันได้และฉันแค่ต้องการลบการเปลี่ยนแปลงในเครื่องทั้งหมดของฉันและยอมรับและเริ่มต้นใหม่อีกครั้งด้วยรหัสที่สะอาดหมดจดและประวัติที่สะอาด กล่าวอีกนัยหนึ่งฉันต้องการลงท้ายด้วย (a) รหัสในเครื่องเดียวกันกับที่มีอยู่ในส่วนปลายของสาขาระยะไกลและ (b) ไม่มีประวัติของการกระทำใด ๆ ในท้องถิ่น ฉันรู้ว่าhg update -Cเขียนทับการเปลี่ยนแปลงในเครื่อง แต่ฉันจะลบคอมมิตในเครื่องได้อย่างไร? เพื่อความชัดเจนฉันไม่มีความสนใจที่จะรักษางานใด ๆ ที่ฉันทำในท้องถิ่น ฉันต้องการวิธีที่ง่ายที่สุดในการเปลี่ยนกลับไปใช้การชำระเงินในท้องถิ่นที่สะอาด

6
เหตุใดการแตกแขนงและการรวมเข้าด้วยกันใน Mercurial จึงง่ายกว่าการโค่นล้ม?
การจัดการการผสานหลายรายการเข้ากับสาขาใน Subversion หรือ CVS เป็นเพียงหนึ่งในสิ่งเหล่านั้นที่ต้องมีประสบการณ์ การติดตามสาขาและการรวมใน Mercurial นั้นง่ายกว่ามาก (และอาจเป็นระบบกระจายอื่น ๆ ) แต่ฉันไม่รู้ว่าทำไม มีใครรู้บ้างไหม? คำถามของฉันเกิดจากข้อเท็จจริงที่ว่าด้วย Mercurial คุณสามารถใช้วิธีปฏิบัติในการทำงานที่คล้ายกับที่เก็บส่วนกลางของ Subversions / CVSs และทุกอย่างจะทำงานได้ดี คุณสามารถทำการผสานหลายรายการในสาขาเดียวกันและคุณไม่ต้องใช้เศษกระดาษที่ไม่มีที่สิ้นสุดพร้อมหมายเลขคอมมิตและชื่อแท็ก ฉันรู้ว่าเวอร์ชันล่าสุดของ Subversion มีความสามารถในการติดตามการผสานไปยังสาขาดังนั้นคุณจึงไม่ต้องยุ่งยากในระดับเดียวกัน แต่เป็นการพัฒนาที่ยิ่งใหญ่และสำคัญในฝั่งของพวกเขาและมันก็ยังไม่ทำทุกอย่างที่ทีมพัฒนาทำได้ ชอบที่จะทำ ต้องมีความแตกต่างพื้นฐานในวิธีการทำงานทั้งหมด

4
Git เทียบเท่ากับคำสั่ง Mercurial ทั่วไปหรือไม่?
ฉันใช้ Mercurial มาแล้ว แต่อยากจะสาธิต Git อย่างรวดเร็ว Git เทียบเท่ากับอะไร: hg init . # start a project in the current directory hg addremove # look for any added or deleted files hg commit -m "comment" # commit any uncomitted changes hg status # what have i changed since the last commit?
90 git  mercurial 

1
จะรับเส้นทาง hg ของเซิร์ฟเวอร์ระยะไกลได้อย่างไร
ฉันได้สร้าง repo ระยะไกลเพื่อผลักดันการเปลี่ยนแปลงในเครื่องของฉันผ่าน ssl ฉันhg showconfig --debugค้นหาเส้นทาง hg ระยะไกลของฉัน แต่มันยุ่งเหยิงบางอย่างอาจชี้ให้ฉันเห็นว่ามันคืออะไร

2
จะยกเลิกการผสาน Mercurial ได้อย่างไร?
ฉันเกลียดการผสาน ฉันต้องการเปลี่ยนกลับแล้วลองอีกครั้ง มีวิธียกเลิกการผสานก่อนที่จะทำการคอมมิตหรือไม่? hg revertไม่ทำในสิ่งที่ฉันต้องการ แต่จะเปลี่ยนข้อความของไฟล์เท่านั้น Mercurial ยกเลิกความพยายามครั้งที่สองของฉันในการรวมและบ่นว่าการผสานดั้งเดิมยังคงไม่มีข้อผูกมัด มีวิธียกเลิกการผสานหลังจากhg mergeคำสั่ง แต่ก่อนที่จะคอมมิตหรือไม่?

3
จะรวมสองโครงการใน Mercurial ได้อย่างไร?
ฉันมีที่เก็บปรอทสองแห่งแยกกัน ณ จุดนี้ทำให้รู้สึกว่าพวกเขา "รวมเป็นหนึ่ง" เพราะฉันต้องการทำงานสองโปรเจ็กต์ไปพร้อม ๆ กัน ฉันอยากให้ทั้งสองโปรเจ็กต์เป็นไดเร็กทอรีย่อยในที่เก็บใหม่ ฉันจะรวมสองโครงการได้อย่างไร นี่เป็นความคิดที่ดีหรือฉันควรแยกมันออกจากกัน ดูเหมือนว่าฉันควรจะสามารถผลักดันจากที่เก็บหนึ่งไปยังอีกที่เก็บหนึ่ง ... อาจจะตรงไปตรงมาจริงๆ?
84 mercurial 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.