อ่าน 3 นาที
ดาร์คส์
Darcs เป็น ระบบ ควบคุมเวอร์ชันแบบกระจาย ที่สร้างโดย David Roundy คุณสมบัติหลัก ได้แก่ ความสามารถในการเลือกการเปลี่ยนแปลงที่จะยอมรับจากที่เก็บข้อมูลอื่น...
ดาร์คส์
| ดาร์คส์ | |
|---|---|
| ผู้เขียนต้นฉบับ | เดวิด ราวน์ดี้ |
| นักพัฒนา | กิโยม ฮอฟฟ์มันน์ และคณะ |
| ปล่อย | 3 มีนาคม พ.ศ. 2546 [ 1 ] |
| เวอร์ชันเสถียร | 2.18.5 [ 2 ] |
| เขียนเป็น | ฮัสเคลล์ |
| ระบบปฏิบัติการ | ยูนิก , ลินุกซ์ , บีเอสดี , แอปเปิลแมคอาสตอรี่ , เอ็มเอสวินโดว์ |
| พิมพ์ | การควบคุมเวอร์ชัน |
| ใบอนุญาต | จีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า |
| เว็บไซต์ | darcs.net |
| ที่เก็บข้อมูล |
|
Darcsเป็น ระบบ ควบคุมเวอร์ชันแบบกระจายที่สร้างโดยDavid Roundyคุณสมบัติหลัก ได้แก่ ความสามารถในการเลือกการเปลี่ยนแปลงที่จะยอมรับจากที่เก็บข้อมูลอื่น การโต้ตอบกับที่เก็บข้อมูลในเครื่อง (บนดิสก์) หรือที่เก็บข้อมูลระยะไกลผ่านSSH , HTTPหรืออีเมล และอินเทอร์เฟซแบบโต้ตอบที่ไม่ธรรมดา นักพัฒนายังเน้นการใช้เครื่องมือซอฟต์แวร์ขั้นสูงสำหรับการตรวจสอบความถูกต้อง: ระบบประเภท ที่แสดงออก ของภาษาการเขียนโปรแกรมเชิงฟังก์ชันHaskellบังคับใช้คุณสมบัติบางอย่าง และการทดสอบแบบสุ่มผ่านQuickCheckตรวจสอบคุณสมบัติอื่นๆ อีกมากมาย[ 3 ] ชื่อนี้เป็นคำย่อแบบเรียกซ้ำของDarcs Advanced Revision Control System [ 4 ]
แบบอย่าง
Darcs ถือว่าแพตช์เป็นสิ่งสำคัญอันดับแรกสำหรับผู้ใช้แล้ว คลังเก็บแพตช์สามารถมองได้ว่าเป็นชุดของแพตช์ โดยที่แต่ละแพตช์ไม่จำเป็นต้องเรียงลำดับตามแพตช์อื่นๆ กล่าวคือ ชุดของแพตช์เป็นเพียงชุดที่มีการเรียงลำดับบางส่วน เท่านั้น ในหลายกรณี แพตช์สามารถส่งต่อระหว่างคลังเก็บแพตช์ต่างๆ ได้อย่างอิสระ
การสร้างสาขาการรวมและการเลือกเฉพาะส่วนที่ต้องการ ซึ่งในระบบแบบสแนปช็อตอย่างGitหรือMercurial จำเป็นต้องใช้คำสั่งเพิ่มเติม สามารถทำได้โดยตรงด้วย Darcs โดยใช้คำสั่ง "pull" และ "push" ตามปกติ ในแง่ของส่วนติดต่อผู้ใช้ นั่นหมายความว่า Darcs มีคำสั่งน้อยกว่า และคำสั่งเหล่านี้มีความโต้ตอบมากกว่า ผู้ใช้สามารถเลือกได้อย่างแม่นยำยิ่งขึ้นว่าต้องการแลกเปลี่ยนแพตช์ใดกับที่เก็บข้อมูลระยะไกล
แพทช์ในที่เก็บข้อมูลจะถูกจัดเรียงตามลำดับเชิงเส้น Darcs จะคำนวณโดยอัตโนมัติว่าสามารถจัดเรียงแพทช์ใหม่ได้หรือไม่ (การดำเนินการที่เรียกว่าการสลับตำแหน่ง) และวิธีการดำเนินการดังกล่าว การคำนวณเหล่านี้เป็นการนำทฤษฎีแพทช์มาใช้
แพทช์ Darcs สามารถมีการเปลี่ยนแปลงได้หลายประเภท ดังต่อไปนี้:
- การเปลี่ยนแปลงเส้นทาง
- การสร้างและการลบไฟล์และไดเร็กทอรี
- การย้ายไฟล์และไดเร็กทอรี
- การแทนที่คำ (โดยทั่วไปใช้ในการปรับโครงสร้างโค้ด เช่น เปลี่ยนชื่อคำว่า "foo" ทั้งหมดเป็น "bar" ในไฟล์ที่กำหนด)
แนวคิดเรื่องความสัมพันธ์ระหว่างแพตช์นั้นถูกกำหนดไว้ในเชิงไวยากรณ์ โดยทั่วไปแล้ว แพตช์Bจะขึ้นอยู่กับแพตช์AหากAเป็นเนื้อหาที่Bแก้ไข ซึ่งหมายความว่าแพตช์ที่แก้ไขส่วนต่างๆ ของโค้ดจะถือว่าแยกจากกันโดยค่าเริ่มต้น เพื่อแก้ไขปัญหาในกรณีที่ไม่ต้องการให้เป็นเช่นนั้น Darcs จึงอนุญาตให้ผู้ใช้ระบุความสัมพันธ์ระหว่างแพตช์ได้อย่างชัดเจน
ตั้งแต่เวอร์ชัน 2.10 เป็นต้นไป Darcs จะใช้ค่าความแตกต่างแบบ patience diff เป็นค่าเริ่มต้น
ประวัติศาสตร์
Darcs พัฒนามาจากความพยายามของ David Roundy ในการออกแบบรูปแบบแพตช์ใหม่สำหรับGNU archในเดือนมิถุนายน พ.ศ. 2545 การอภิปรายเหล่านี้ไม่ได้นำไปสู่การนำโค้ดใดๆ ไปใช้ใน Arch แต่ได้นำไปสู่แนวคิดของทฤษฎีแพตช์ หลังจากเขียน Darcs เวอร์ชันเริ่มต้นในC++แล้ว เวอร์ชัน Haskellก็ถูกเขียนขึ้นในฤดูใบไม้ร่วง พ.ศ. 2545 และเผยแพร่สู่สาธารณะในเดือนเมษายน พ.ศ. 2546 Darcs 2.0 ได้รับการเผยแพร่ในเดือนเมษายน พ.ศ. 2551 และได้แนะนำรูปแบบที่เก็บข้อมูลที่แข็งแกร่งยิ่งขึ้น รวมถึงความหมายของแพตช์ใหม่ที่เรียกว่า "darcs-2" ซึ่งมุ่งเป้าไปที่การลดความขัดแย้งในการผสาน แบบ ทวีคูณ[ 5 ] กลยุทธ์การพัฒนาในปัจจุบันมุ่งเน้นไปที่การนำการเพิ่มประสิทธิภาพมาใช้และการเพิ่มคุณสมบัติใหม่ๆ ในขณะที่ยังคงรักษารูปแบบที่เก็บข้อมูลเดิมไว้
ข้อบกพร่อง
Darcs ถูกวิพากษ์วิจารณ์เรื่องปัญหาประสิทธิภาพ[ 6 ] [ 7 ]ซึ่งรวมถึงความท้าทายที่เกี่ยวข้องกับอัลกอริธึมการรวมของ Darcs 1.x ซึ่งแสดงให้เห็นการทำงานแบบทวีคูณในการรวมความขัดแย้งบางอย่าง แม้ว่าจะยังไม่ได้รับการแก้ไขอย่างสมบูรณ์ในเวอร์ชันต่อมาของ Darcs [ 8 ]แต่ความถี่ของการรวมแบบทวีคูณก็ลดลงอย่างเห็นได้ชัด
ยังคงมีบั๊กอยู่ซึ่งการรวมความขัดแย้งแบบเรียกซ้ำล้มเหลว[ 9 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ดาร์คส์
Darcs เป็น ระบบ ควบคุมเวอร์ชันแบบกระจาย ที่สร้างโดย David Roundy คุณสมบัติหลัก ได้แก่ ความสามารถในการเลือกการเปลี่ยนแปลงที่จะยอมรับจากที่เก็บข้อมูลอื่น...
แบบอย่าง
Darcs ถือว่าแพตช์เป็น สิ่งสำคัญอันดับแรก สำหรับผู้ใช้แล้ว คลังเก็บแพตช์สามารถมองได้ว่าเป็นชุดของแพตช์ โดยที่แต่ละแพตช์ไม่จำเป็นต้องเรียงลำดับตามแพตช์อื่นๆ กล่าวคือ ชุดของแพตช์เป็นเพียง ชุดที่มีการเรียงลำดับบางส่วน เท่านั้น ในหลายกรณี...
ประวัติศาสตร์
Darcs พัฒนามาจากความพยายามของ David Roundy ในการออกแบบรูปแบบแพตช์ใหม่สำหรับ GNU arch ในเดือนมิถุนายน พ.ศ.
ข้อบกพร่อง
Darcs ถูกวิพากษ์วิจารณ์เรื่องปัญหาประสิทธิภาพ [ 6 ] [ 7 ] ซึ่งรวมถึงความท้าทายที่เกี่ยวข้องกับอัลกอริธึมการรวมของ Darcs 1.