กลับไปหน้าบทความ

อ่าน 5 นาที

เปลี่ยนแปลงง่าย

ซอฟต์แวร์ปี 2548/CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว/ซอฟต์แวร์ฟรีข้ามแพลตฟอร์ม/ระบบควบคุมเวอร์ชันแบบกระจาย/ซอฟต์แวร์ฟรีที่ตั้งโปรแกรมใน C/ซอฟต์แวร์ฟรีที่ตั้งโปรแกรมด้วย Python/ซอฟต์แวร์ควบคุมเวอร์ชันฟรี/ซอฟต์แวร์ที่ใช้ GNU General Public License

Mercurialเป็น เครื่องมือ ควบคุมเวอร์ชันแบบกระจายสำหรับนักพัฒนาซอฟต์แวร์รองรับการใช้งานบนMicrosoft Windows , Linuxและ ระบบปฏิบัติการ ที่คล้าย Unix อื่นๆ เช่นFreeBSDและmacOS

เปลี่ยนแปลงง่าย

เปลี่ยนแปลงง่าย
นักพัฒนาโอลิเวีย แมคคอล[ a ] ​​(เกษียณแล้ว), [ 1 ]ปิแอร์-อีฟ ดาวิด
ปล่อย19  เมษายน 2548  ( 2005-04-19 ) [ 2 ]
เวอร์ชันเสถียร
7.2.2 [ 3 ] / 7 พฤษภาคม 2026 แก้ไขข้อมูลนี้บนวิกิดาต้า
เขียนเป็นPython , CและRust [ 4 ]
ระบบปฏิบัติการระบบปฏิบัติการคล้าย Unix , Windows , macOS
พิมพ์การควบคุมเวอร์ชัน
ใบอนุญาตจีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า
เว็บไซต์www.mercurial-scm.org แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูล
  • repo .mercurial-scm .org /hg-stable

Mercurialเป็น เครื่องมือ ควบคุมเวอร์ชันแบบกระจายสำหรับนักพัฒนาซอฟต์แวร์รองรับการใช้งานบนMicrosoft Windows , Linuxและ ระบบปฏิบัติการ ที่คล้าย Unix อื่นๆ เช่นFreeBSDและmacOS

เป้าหมายการออกแบบหลักของ Mercurial ได้แก่ ประสิทธิภาพสูงและความสามารถในการปรับขนาด การกระจายอำนาจ การพัฒนาร่วมกันแบบกระจายอย่างเต็มรูปแบบ การจัดการไฟล์ข้อความธรรมดาและไฟล์ไบนารีอย่างมีประสิทธิภาพ และความสามารถในการแยกสาขาและการรวมขั้นสูง ในขณะที่ยังคงความเรียบง่ายในเชิงแนวคิด[ 5 ]นอกจากนี้ยังมีอินเทอร์เฟซเว็บแบบบูรณาการ Mercurial ยังได้ดำเนินการเพื่ออำนวยความสะดวกในการเปลี่ยนผ่านสำหรับผู้ใช้ระบบควบคุมเวอร์ชันอื่นๆ โดยเฉพาะSubversion Mercurial เป็น โปรแกรมที่ขับเคลื่อนด้วยบรรทัด คำสั่งเป็น หลัก แต่ มีส่วนขยาย อินเทอร์เฟซผู้ใช้แบบกราฟิกเช่นTortoiseHgและIDE หลายตัว รองรับการควบคุมเวอร์ชันด้วย Mercurial การดำเนินการทั้งหมดของ Mercurial จะถูกเรียกใช้เป็นอาร์กิวเมนต์ไปยังโปรแกรมไดรเวอร์hg(อ้างอิงถึง Hg ซึ่งเป็นสัญลักษณ์ทางเคมีของธาตุปรอท )

Olivia Mackall [ a ] ​​เป็นผู้ริเริ่ม Mercurial และดำรงตำแหน่งนักพัฒนาหลักจนถึงปลายปี 2016 Mercurial ได้รับการเผยแพร่เป็นซอฟต์แวร์ฟรีภายใต้ใบอนุญาตGPL-2.0 หรือเวอร์ชันที่ใหม่กว่า[ 7 ]โดยส่วนใหญ่ใช้ภาษาการเขียนโปรแกรม Pythonแต่รวมถึง การใช้งาน การเปรียบเทียบ ไบนารี ที่เขียนด้วย ภาษา Cด้วย

ประวัติศาสตร์

Mackall ประกาศเปิดตัว Mercurial ครั้งแรกเมื่อวันที่ 19 เมษายน พ.ศ. 2548 [ 2 ]แรงผลักดันสำหรับเรื่องนี้คือการประกาศของBitmover ใน ช่วง ต้นเดือนนั้นว่าพวกเขาจะถอน BitKeeperเวอร์ชันฟรีออกเนื่องจากการพัฒนาSourcePuller

BitKeeper ถูกใช้เพื่อตอบสนอง ความต้องการ การควบคุมเวอร์ชันของ โครงการ เคอร์เนล Linux Mackall ตัดสินใจเขียนระบบควบคุมเวอร์ชันแบบกระจายเพื่อใช้ทดแทนเคอร์เนล Linux โครงการนี้เริ่มต้นขึ้นไม่กี่วันหลังจาก โครงการ Git ที่เป็นที่รู้จักกันดีในปัจจุบัน ซึ่งริเริ่มโดยLinus Torvaldsด้วยจุดประสงค์ที่คล้ายคลึงกัน[ 8 ]

โครงการพัฒนาเคอร์เนล Linux ตัดสินใจใช้Gitแทน Mercurial แต่ปัจจุบัน Mercurial ถูกนำไปใช้โดยโครงการอื่นๆ อีกมากมาย (ดูด้านล่าง )

โอลิเวีย แม็กคอลล์ ตอบคำถามในรายชื่อผู้รับจดหมายของ Mercurial โดยอธิบายถึงที่มาของชื่อ "Mercurial" ดังนี้:

ก่อนการเปิดตัวครั้งแรกไม่นาน ฉันได้อ่านบทความเกี่ยวกับปัญหา Bitkeeper ที่กำลังดำเนินอยู่ ซึ่งอธิบายว่าLarry McVoyเป็นคนมีนิสัยแปรปรวน (ในความหมายของ 'โลเล') เมื่อพิจารณาจากความหมายที่หลากหลาย ตัวย่อที่สะดวก และความเหมาะสมที่ดีกับรูปแบบการตั้งชื่อที่มีอยู่แล้วของฉัน (ดูที่อยู่อีเมลของฉัน) มันจึงลงตัวในทันที ดังนั้น Mercurial จึงได้รับการตั้งชื่อเพื่อเป็นเกียรติแก่ Larry ฉันไม่รู้ว่า Git จะเป็นเช่นเดียวกันหรือไม่[ 9 ] [ 10 ]

โครงการที่มีชื่อเสียงอย่างOpenJDKเคยใช้ Mercurial ในอดีต แม้ว่า OpenJDK จะไม่ใช้แล้วตั้งแต่ Java 16 [ 11 ]

ออกแบบ

Mercurial ใช้ แฮ ช SHA-1ในการระบุเวอร์ชัน สำหรับการเข้าถึงที่เก็บข้อมูลผ่านเครือข่าย Mercurial ใช้ โปรโตคอลแบบ HTTPซึ่งมุ่งลดจำนวนคำขอไป-กลับ การเชื่อมต่อใหม่ และข้อมูลที่ถ่ายโอน Mercurial ยังสามารถทำงานผ่านSSHได้ โดยโปรโตคอลจะคล้ายกับโปรโตคอลแบบ HTTP มาก โดยค่าเริ่มต้นจะใช้การผสานแบบ 3 ทางก่อนที่จะเรียกใช้เครื่องมือผสานภายนอก

การใช้งาน

ภาพที่ 1 แสดงการดำเนินการที่สำคัญที่สุดบางส่วนใน Mercurial และความสัมพันธ์ของการดำเนินการเหล่านั้นกับแนวคิดต่างๆ ของ Mercurial

รูปที่ 1: การดำเนินการที่สำคัญบางอย่างของเมอร์คิวเรียลและความสัมพันธ์ระหว่างกัน

การรับเลี้ยงบุตรบุญธรรม

แม้ว่า Mercurial จะไม่ได้รับการคัดเลือกให้จัดการซอร์สโค้ดเคอร์เนล Linux แต่ก็มีองค์กรหลายแห่งนำไปใช้ Facebook ใช้ภาษาโปรแกรม Rustในการเขียน Mononoke [ 12 ] [ 13 ]ซึ่งเป็นเซิร์ฟเวอร์ Mercurial ที่ออกแบบมาโดยเฉพาะเพื่อรองรับคลังเก็บข้อมูลหลายโครงการขนาดใหญ่

ในปี 2556 Facebook ได้นำ Mercurial มาใช้และเริ่มดำเนินการปรับขนาดเพื่อรองรับคลังโค้ดขนาดใหญ่แบบรวมศูนย์[ 14 ]

Google ยังใช้ไคลเอ็นต์ Mercurial เป็นส่วนหน้าบนแบ็กเอนด์ monorepo 'Piper' บนคลาวด์อีกด้วย[ 15 ]

Bitbucketประกาศว่าบริการควบคุมเวอร์ชันบนเว็บของตนจะยุติการสนับสนุน Mercurial ในเดือนมิถุนายน 2020 (จากนั้นขยายเวลาเป็นเดือนกรกฎาคม 2020) [ 16 ]โดยอธิบายว่า "มีโครงการใหม่น้อยกว่า 1% ที่ใช้ และแบบสำรวจนักพัฒนาระบุว่านักพัฒนา 90% ใช้ Git" [ 17 ]

Xenใช้ Mercurial เป็นเวลาหลายปี แต่เปลี่ยนมาใช้ Git ในปี 2013 [ 18 ]

Mozillaใช้ Mercurial มาหลายปี แต่เริ่มเปลี่ยนมาสนับสนุน Git แทน Mercurial ในปี 2023 [ 19 ]

เซิร์ฟเวอร์ Mercurial และการจัดการที่เก็บข้อมูล

การโฮสต์ซอร์สโค้ด

เว็บไซต์ต่อไปนี้ให้บริการโฮสติ้งซอร์สโค้ดฟรีสำหรับที่เก็บข้อมูล Mercurial:

เว็บไซต์ของ Mercurial กล่าวถึงโรงตีเหล็กอื่นๆ อีก บาง แห่ง

โครงการโอเพนซอร์สที่ใช้ Mercurial

บางโครงการที่ใช้ RCS แบบกระจายของ Mercurial: [ 25 ]

โครงการโอเพนซอร์สที่เคยใช้ Mercurial

ดูเพิ่มเติม

หมายเหตุ

  1. 1 2โอลิเวีย แม็คคอล เดิมทีรู้จักกันในชื่อ แมตต์ แม็คคอล [ 6 ]
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Mercurial&oldid=1361261398 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เปลี่ยนแปลงง่าย

Mercurialเป็น เครื่องมือ ควบคุมเวอร์ชันแบบกระจายสำหรับนักพัฒนาซอฟต์แวร์รองรับการใช้งานบนMicrosoft Windows , Linuxและ ระบบปฏิบัติการ ที่คล้าย Unix อื่นๆ เช่นFreeBSDและmacOS

ประวัติศาสตร์

Mackall ประกาศเปิดตัว Mercurial ครั้งแรกเมื่อวันที่ 19 เมษายน พ.ศ. 2548 [ 2 ] แรงผลักดันสำหรับเรื่องนี้คือการประกาศของ Bitmover ใน ช่วง ต้นเดือนนั้นว่าพวกเขาจะถอน BitKeeper เวอร์ชันฟรีออกเนื่องจากการพัฒนา SourcePuller

ออกแบบ

Mercurial ใช้ แฮ ช SHA-1 ในการระบุเวอร์ชัน สำหรับการเข้าถึงที่เก็บข้อมูลผ่านเครือข่าย Mercurial ใช้ โปรโตคอลแบบ HTTP ซึ่งมุ่งลดจำนวนคำขอไป-กลับ การเชื่อมต่อใหม่ และข้อมูลที่ถ่ายโอน Mercurial ยังสามารถทำงานผ่าน SSH ได้ โดยโปรโตคอลจะคล้ายกับโปรโตคอลแบบ HTTP มาก...

การใช้งาน

ภาพที่ 1 แสดงการดำเนินการที่สำคัญที่สุดบางส่วนใน Mercurial และความสัมพันธ์ของการดำเนินการเหล่านั้นกับแนวคิดต่างๆ ของ Mercurial