นี่คือคำสั่ง git-merge-changelog ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
git-merge-changelog - ไดรเวอร์ git merge สำหรับไฟล์ GNU ChangeLog
DESCRIPTION
ไดรเวอร์การรวมเริ่มต้นของ 'git' เสมอ ก่อให้เกิดความขัดแย้งเมื่อดึงสาธารณะ
การแก้ไขในไฟล์ ChangeLog ที่แก้ไขแบบส่วนตัว นี่เป็นเพราะไฟล์ ChangeLog
จะถูกแก้ไขที่ด้านบนเสมอ โปรแกรมควบคุมการรวมเริ่มต้นไม่มีเงื่อนงำว่าจะจัดการอย่างไร
นี้. นอกจากนี้ความขัดแย้งยังนำเสนอด้วยเครื่องหมาย <<<< ==== >>>> มากกว่า
จำเป็น; นี่เป็นเพราะโปรแกรมควบคุมการรวมเริ่มต้นใช้ความพยายามที่ไร้จุดหมายในการดู
การเปลี่ยนแปลงแต่ละบรรทัดภายในรายการ ChangeLog
โปรแกรมนี้ทำหน้าที่เป็นโปรแกรมควบคุมการรวม 'git' ที่ช่วยหลีกเลี่ยงปัญหาเหล่านี้
1. ไม่ก่อให้เกิดข้อขัดแย้งเมื่อใส่รายการ ChangeLog ที่ด้านบนทั้งสองใน
สาธารณะและในการปรับเปลี่ยนส่วนตัว มันทำให้รายการที่เพิ่มส่วนตัวด้านบน
รายการที่เพิ่มต่อสาธารณะ
2. ยึดตามโครงสร้างของไฟล์ ChangeLog: รายการจะไม่ถูกแบ่งออกเป็นบรรทัดแต่
เก็บไว้ด้วยกัน
3. นอกจากนี้ยังจัดการกรณีของการแก้ไขเล็กน้อยของรายการ ChangeLog ที่ผ่านมา หรือของ
ลบรายการ ChangeLog: รวมเข้าด้วยกันอย่างที่คาดไว้
4. ความขัดแย้งจะแสดงที่ด้านบนของไฟล์ แทนที่จะแสดงที่ตำแหน่ง ดังนั้น
ที่ผู้ใช้จะเห็นได้ทันที (ต่างจากซอร์สโค้ดที่เขียนในบางส่วน
ภาษาโปรแกรม ตัวทำเครื่องหมายข้อขัดแย้งที่อยู่หลายร้อยบรรทัดจาก
ด้านบนจะไม่ทำให้เกิดข้อผิดพลาดทางไวยากรณ์ใด ๆ ดังนั้นจึงมีแนวโน้มที่จะยังคงอยู่
โดยไม่มีใครสังเกต)
สำหรับ คอมไพล์ ผู้ใช้:
- เพิ่มใน .git/config ของการชำระเงิน (หรือใน $HOME/.gitconfig ของคุณ) ที่บรรทัด
[ผสาน "ผสานการเปลี่ยนแปลงบันทึก"]
ชื่อ = โปรแกรมควบคุมการผสาน ChangeLog สไตล์ GNU
ไดรเวอร์ = /usr/bin/git-merge-changelog %O %A %B
- ในทุกไดเร็กทอรีที่มีไฟล์ ChangeLog ให้เพิ่มไฟล์ '.gitattributes' ด้วย
บรรทัดนี้:
ChangeLog merge=ผสานบันทึกการเปลี่ยนแปลง
(ดูข้อมูลเพิ่มเติมที่ "man 5 gitattributes")
สำหรับ bzr ผู้ใช้:
- ติดตั้งปลั๊กอิน bzr 'extmerge' ที่แสดงรายการที่
<http://doc.bazaar.canonical.com/plugins/en/index.html>
<http://wiki.bazaar.canonical.com/BzrPlugins>
- เพิ่มไปที่ $HOME/.bazaar/bazaar.conf ในบรรทัด
external_merge = git-merge-changelog %b %T %o
- จากนั้น หากต้องการรวมข้อขัดแย้งในไฟล์ ChangeLog ให้ใช้
$ bzr ผสาน ChangeLog
สำหรับ hg ผู้ใช้:
- เพิ่มใน $HOME/.hgrc the lines . ของคุณ
[รูปแบบการผสาน]
ChangeLog = git-ผสานบันทึกการเปลี่ยนแปลง
[เครื่องมือผสาน]
git-merge-changelog.executable = /usr/bin/git-merge-changelog
git-merge-changelog.args = $base $local $other
ดูhttp://www.selenic.com/mercurial/hgrc.5.html> ส่วน ผสานเครื่องมือ สำหรับอ้างอิง.
ใช้ as an ทางเลือก ไปยัง 'diff3':
git-merge-changelog ทำหน้าที่เหมือนกับ "diff3 -m" เพียงแค่มีอาร์กิวเมนต์ที่เรียงลำดับใหม่:
$ git-merge-changelog %O %A %B
เปรียบได้กับ
$ ส่วนต่าง3 -ม %A %O %B
การเรียกร้อง การประชุม:
โปรแกรมควบคุมการผสานถูกเรียกด้วยอาร์กิวเมนต์ชื่อไฟล์สามรายการ:
1. %O = บรรพบุรุษร่วมกันของ %A และ %B
2. %A = เนื้อหาของไฟล์จาก "สาขาปัจจุบัน"
3. %B = เนื้อหาของไฟล์จาก "สาขาอื่น"; นี่คือเนื้อหาที่ถูกผสาน
มา
ในกรณีของ "git stash ใช้" หรือการดึงต้นน้ำ (เช่นจากผู้ดูแลระบบย่อยถึง
ผู้ดูแลส่วนกลาง) หรือการดึงดาวน์สตรีมด้วย --rebase:
2. %A = เนื้อหาที่ดึงมาใหม่ล่าสุดของไฟล์ แก้ไขโดยผู้ดำเนินการอื่น ๆ
3. %B = สำเนาไฟล์ใหม่ล่าสุดของผู้ใช้ แก้ไขโดยผู้ใช้
ในกรณีของการดึงดาวน์สตรีม (เช่น จากที่เก็บส่วนกลางไปยังผู้ใช้) หรือของ
ต้นน้ำดึงด้วย --rebase:
2. %A = สำเนาไฟล์ใหม่ล่าสุดของผู้ใช้ แก้ไขโดยผู้ใช้
3. %B = เนื้อหาที่ดึงมาใหม่ล่าสุดของไฟล์ แก้ไขโดยผู้ดำเนินการอื่น ๆ
ควรเขียนผลลัพธ์ที่ผสานลงในไฟล์ %A นอกจากนี้ยังสามารถสะท้อนข้อสังเกตบางอย่างไปยัง stdout
ควรออกด้วยรหัสส่งคืน 0 หากการผสานสามารถแก้ไขได้อย่างสมบูรณ์หรือไม่ใช่ศูนย์
ส่งคืนรหัสหากมีข้อขัดแย้ง
สรุป ความน่าเชื่อถือของ Olymp Trade? it ผลงาน:
โครงสร้างของไฟล์ ChangeLog: ประกอบด้วยรายการ ChangeLog รายการบันทึกการเปลี่ยนแปลง
เริ่มต้นที่บรรทัดต่อจากบรรทัดว่างและที่ขึ้นต้นด้วยอักขระที่ไม่ใช่ช่องว่าง
หรือที่จุดเริ่มต้นของไฟล์ โปรแกรมควบคุมการผสานทำงานดังนี้: อ่านสาม
ไฟล์ลงในหน่วยความจำและแยกออกเป็นรายการ ChangeLog แล้วจะพบความแตกต่าง
ระหว่าง %O และ %B พวกเขาจัดเป็น:
- การลบ (ลบบางรายการติดต่อกัน)
- การเปลี่ยนแปลง (ลบรายการต่อเนื่องบางรายการ เพิ่มบางรายการต่อเนื่องกัน)
- เพิ่มเติม (เพิ่มบางรายการต่อเนื่องกัน)
คนขับจะพยายามนำการเปลี่ยนแปลงไปใช้กับ %A ในการนี้ ให้คำนวณ a . ก่อน
ความสอดคล้องระหว่างรายการใน %O และรายการใน %A โดยใช้สตริงคลุมเครือ
จับคู่เพื่อระบุรายการที่เปลี่ยนแปลง
- การนำออกจะถูกนำไปใช้ทีละรายการ หากรายการมีอยู่ใน %A ในตำแหน่งใดๆ จะเป็น
ลบออก. หากไม่เป็นเช่นนั้น การนำออกจะถูกทำเครื่องหมายว่าเป็นข้อขัดแย้ง
- การเพิ่มเติมที่ด้านบนของ %B จะถูกนำไปใช้ที่ด้านบนของ %A
- มีการเพิ่มเติมระหว่างรายการ x และรายการ y (y อาจเป็นส่วนท้ายของไฟล์) ใน %B
ระหว่างรายการ x และรายการ y ใน %A (หากยังคงมีอยู่และยังคงต่อเนื่องกันใน
%A) มิฉะนั้น การเพิ่มเติมจะถูกทำเครื่องหมายว่าเป็นข้อขัดแย้ง
- การเปลี่ยนแปลงแบ่งออกเป็น "การเปลี่ยนแปลงอย่างง่าย":
entry1 ... entryn ถูกแมปกับ
added_entry ... added_entry modified_entry1 ... modified_entryn โดยที่
ความสอดคล้องระหว่าง entry_i และ modified_entry_i ยังคงชัดเจน และ "การเปลี่ยนแปลงครั้งใหญ่":
ทั้งหมดนี้เป็นส่วนที่เหลือ การเปลี่ยนแปลงอย่างง่ายที่ด้านบนของ %B ถูกนำไปใช้โดยการใส่
เพิ่มรายการที่ด้านบนของ %A การเปลี่ยนแปลงในการเปลี่ยนแปลงอย่างง่ายจะถูกนำไปใช้ทีละรายการ
อาจนำไปสู่ความขัดแย้งรายการเดียว มีการเปลี่ยนแปลงครั้งใหญ่ในกลุ่ม เป็นไปได้
นำไปสู่ความขัดแย้งที่ครอบคลุมหลายรายการ
- ความขัดแย้งจะแสดงที่ด้านบนของไฟล์และทำให้สถานะออกเป็น 1
ใช้ git-merge-changelog ออนไลน์โดยใช้บริการ onworks.net