อ่าน 10 นาที
การเปรียบเทียบซอฟต์แวร์ควบคุมเวอร์ชัน
ตารางต่อไปนี้อธิบายคุณลักษณะของระบบควบคุมเวอร์ชันและระบบจัดการการกำหนดค่าซอฟต์แวร์ (SCM) ที่สำคัญซึ่งสามารถใช้เปรียบเทียบและหาความแตกต่างระหว่างระบบต่างๆ ได้
การเปรียบเทียบซอฟต์แวร์ควบคุมเวอร์ชัน
ตารางต่อไปนี้อธิบายคุณลักษณะของระบบควบคุมเวอร์ชันและระบบจัดการการกำหนดค่าซอฟต์แวร์ (SCM) ที่สำคัญซึ่งสามารถใช้เปรียบเทียบและหาความแตกต่างระหว่างระบบต่างๆ ได้
สำหรับซอฟต์แวร์ SCM ที่ไม่เหมาะกับซอร์สโค้ดโปรดดูที่ การเปรียบเทียบซอฟต์แวร์การจัดการการกำหนดค่าแบบโอเพนซอร์ส
ข้อมูลทั่วไป
ตารางต่อไปนี้แสดงคุณลักษณะทั่วไปของระบบซอฟต์แวร์ควบคุมเวอร์ชัน ซึ่งรวมถึง:
- โมเดลคลังเก็บข้อมูล ความสัมพันธ์ระหว่างสำเนาของคลังเก็บซอร์สโค้ด
- ระบบไคลเอ็นต์-เซิร์ฟเวอร์ผู้ใช้เข้าถึงที่เก็บข้อมูลหลักผ่านทางไคลเอ็นต์โดยทั่วไปแล้ว เครื่องคอมพิวเตอร์ของผู้ใช้แต่ละคนจะเก็บเพียงสำเนาการทำงานของโครงสร้างโปรเจ็กต์เท่านั้น การเปลี่ยนแปลงในสำเนาการทำงานหนึ่งจะต้องได้รับการยืนยันในที่เก็บข้อมูลหลักก่อนที่จะเผยแพร่ไปยังผู้ใช้รายอื่น
- ในระบบแบบกระจายศูนย์ ที่เก็บข้อมูลจะทำงานในลักษณะของเพื่อนร่วมงาน และโดยทั่วไปผู้ใช้จะมีที่เก็บข้อมูลในเครื่องพร้อมประวัติเวอร์ชันให้ใช้งานได้ นอกเหนือจากสำเนาที่ใช้งานอยู่ของตนเอง
- รูปแบบการทำงานพร้อมกัน (Concurrency model) คือวิธีการจัดการการเปลี่ยนแปลงในสำเนาที่ใช้งานอยู่ เพื่อป้องกันไม่ให้การแก้ไขพร้อมกันทำให้เกิดข้อมูลที่ไม่ถูกต้องในที่เก็บข้อมูล
- ล็อกไฟล์ ไว้ การเปลี่ยนแปลงใดๆ จะไม่สามารถทำได้จนกว่าผู้ใช้จะร้องขอและได้รับการล็อกแบบพิเศษจากที่เก็บข้อมูลหลัก
- การรวม (Merge)ช่วยให้ผู้ใช้สามารถแก้ไขไฟล์ได้อย่างอิสระ แต่จะได้รับแจ้งถึงข้อขัดแย้งที่อาจเกิดขึ้นเมื่อตรวจสอบการเปลี่ยนแปลงลงในที่เก็บข้อมูล จากนั้นระบบควบคุมเวอร์ชันอาจรวมการเปลี่ยนแปลงจากทั้งสองฝั่ง หรือปล่อยให้ผู้ใช้ตัดสินใจเมื่อ เกิด ข้อขัดแย้งระบบควบคุมเวอร์ชันแบบกระจายมักใช้โมเดลการทำงานพร้อมกันแบบการรวม (Merge)
| ซอฟต์แวร์ | ผู้ดูแลระบบ | สถานะการพัฒนา | แบบจำลองคลังเก็บข้อมูล | แบบจำลองความพร้อมกัน | ใบอนุญาต | แพลตฟอร์มที่รองรับ | ต้นทุนทางการเงิน |
|---|---|---|---|---|---|---|---|
| AccuRev SCM | ไมโครโฟกัส | เลิกผลิตแล้ว และได้ควบรวมกิจการกับDimensions CM แล้ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | แพลตฟอร์มJavaส่วนใหญ่ ( ระบบคล้าย Unix , Windows , macOS ) | ราคาที่นั่งละ 350 ดอลลาร์สหรัฐ โดยจะแจ้งราคาเป็นรายบุคคล |
| Azure DevOps | ไมโครซอฟต์ | คล่องแคล่ว | ระบบไคลเอ็นต์-เซิร์ฟเวอร์แบบกระจาย | ผสานหรือล็อก | กรรมสิทธิ์ | Windowsใช้งานได้หลายแพลตฟอร์มผ่านAzure DevOps Services | ใช้งานได้ฟรีสำหรับผู้ใช้สูงสุด 5 รายใน Azure DevOps Services หรือสำหรับโครงการโอเพนซอร์ส หากเกินกว่านั้นจะมีค่าใช้จ่าย โดยต้องซื้อลิขสิทธิ์ผ่าน การสมัครสมาชิก MSDNหรือซื้อโดยตรง |
| ตลาด GNU | แคนอนิก | ไม่มีการดูแลรักษา แยกสาขาเป็นBreezy | ระบบกระจายและไคลเอนต์-เซิร์ฟเวอร์ | ผสาน | จีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| บิตคีปเปอร์ | บริษัท บิตโมเวอร์ อิงค์ | ไม่ได้รับการบำรุงรักษา | กระจาย | ผสาน | อะปาเช่-2.0 | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| IBM DevOps Code ClearCase | ไอบีเอ็ม | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก[ nb 1 ] | กรรมสิทธิ์ | ลินุกซ์ , วินโดวส์ , AIX , โซลาริส , HP UX , IBM i , OS/390 , z/ OS | ใบอนุญาตแบบลอยตัวราคา 4,600 ดอลลาร์สหรัฐ (จะถูกเก็บไว้โดยอัตโนมัติอย่างน้อย 30 นาทีต่อผู้ใช้ สามารถยกเลิกได้ด้วยตนเอง) |
| โค้ด สหกรณ์ | ซอฟต์แวร์ที่เชื่อถือได้ | เลิกผลิตแล้ว | กระจาย | ผสาน | เอ็มไอที | วินโดวส์ | ราคา 150 ดอลลาร์ต่อที่นั่ง |
| ระบบเวอร์ชันพร้อมกัน | ทีม CVS [ 1 ] | ไม่ได้รับการบำรุงรักษา | ไคลเอนต์-เซิร์ฟเวอร์ | ผสาน | จีพีแอล-1.0 หรือเวอร์ชันที่ใหม่กว่า | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| ซีวีเอสเอ็นที | ซอฟต์แวร์ March Hare [ 2 ]และสมาชิกชุมชน | ไม่ได้รับการบำรุงรักษา | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | ลิขสิทธิ์ทั่วไปหรือลิขสิทธิ์เฉพาะ | ระบบปฏิบัติการคล้าย Unix , Windows , macOS , IBM i | ค่าธรรมเนียมการจัดจำหน่าย 425 ปอนด์สำหรับเวอร์ชันเก่า หรือค่าลิขสิทธิ์เชิงพาณิชย์ 85 ปอนด์สำหรับเวอร์ชันล่าสุดของ CVS Suite หรือ Change Management Server |
| ดาร์คส์ | ทีมดาร์คส์ | คล่องแคล่ว | กระจาย | ผสาน | จีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| ดาท | ทีม Dat | ไม่ได้รับการบำรุงรักษา | กระจาย | ผสาน | เงื่อนไข BSD-3 | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| ขนาด (ซม.) | โอเพ่นเท็กซ์ | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | Windows , Linux , Solaris , AIX , HP UX , z/OS | จ่าย |
| ฟอสซิล | ดี. ริชาร์ด ฮิปป์ | คล่องแคล่ว | กระจาย | ผสาน | เงื่อนไข BSD-2 | POSIX , Windows , macOS , อื่นๆ | ฟรี |
| กิต | จูนิโอ ฮามาโนะ | คล่องแคล่ว | กระจาย | ผสาน | เฉพาะ GPL-2.0 เท่านั้น | POSIX , Windows , macOS , Linux | ฟรี |
| สถาปัตยกรรม GNU | แอนดี้ ไท | ไม่ได้รับการบำรุงรักษา | กระจาย | ผสาน | จีพีแอล | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| ไอซี แมเนจ | บริษัท ไอซี แมเนจ อิงค์ | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | จ่าย |
| ความสมบูรณ์ของ PTC | พีทีซี | เลิกผลิตแล้ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | คล้ายยูนิกส์ , วินโดวส์ | จ่าย |
| เปลี่ยนแปลงง่าย | ชุมชนเมอร์คิวเรียล | คล่องแคล่ว | กระจาย | ผสาน | จีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| ไมโครซอฟต์ วิชวล ซอร์สเซฟ | ไมโครซอฟต์ | เลิกผลิตแล้ว | โฟลเดอร์ที่แชร์ | ผสานหรือล็อก | กรรมสิทธิ์ | วินโดวส์ | ราคาใบอนุญาตประมาณ 500 ดอลลาร์สหรัฐ หรือใบอนุญาตเดียวจะรวมอยู่ในค่าสมัครสมาชิก MSDN ทุกครั้ง |
| โมโนโทน | นาธาเนียล สมิธ, เกรย์ดอน โฮร์ | ไม่ได้รับการบำรุงรักษา | กระจาย | ผสาน | จีพีแอล-2.0 หรือเวอร์ชันที่ใหม่กว่า | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| เพอร์ฟอร์ซ พี4 | เพอร์ฟอร์ซ | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์และแบบกระจาย | ผสานหรือล็อก | กรรมสิทธิ์ | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | มีให้เลือกทั้งแบบใบอนุญาตถาวรและแบบสมัครสมาชิก ราคาจะแตกต่างกันไปตามการกำหนดค่าและตัวเลือก[ 3 ] |
| พีวีซี | โอเพ่นเท็กซ์ | เลิกผลิตแล้ว และได้ควบรวมกิจการกับDimensions CM แล้ว | ไคลเอนต์-เซิร์ฟเวอร์ | ล็อค | กรรมสิทธิ์ | ระบบปฏิบัติการ WindowsและUnix-like | จ่าย |
| IBM Rational Team Concert | ไอบีเอ็ม | เลิกผลิตแล้ว | ไคลเอนต์-เซิร์ฟเวอร์[ nb 2 ] [ 4 ] [ 5 ] | ผสานหรือล็อก | กรรมสิทธิ์ | ลินุกซ์ , วินโดวส์ , AIX , โซลาริส , HP UX , IBM i , OS/390 , z/OS , macOS | ใช้งานฟรีสำหรับผู้ใช้สูงสุด 10 ราย หากเกิน 10 รายจะต้องเสียค่าใช้จ่าย |
| การทำงานร่วมกันอย่างมีเหตุผล | ไอบีเอ็ม | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์และแบบกระจาย | ผสานหรือล็อก | กรรมสิทธิ์ | ลินุกซ์ , วินโดวส์ , ระบบคล้ายยูนิกซ์ | จ่ายแล้ว[ 6 ] |
| ระบบควบคุมการแก้ไข | เทียน-ธิ เหงียน | ไม่ได้รับการบำรุงรักษา | ท้องถิ่น | ผสานหรือล็อก | จีพีแอล-3.0 หรือเวอร์ชันที่ใหม่กว่า | เหมือนยูนิก | ฟรี |
| ระบบควบคุมซอร์สโค้ด | Jörg Schilling [ nb 3 ] | ไม่ได้รับการบำรุงรักษา | ท้องถิ่น | ล็อค[ nb 4 ] | CDDL – กรรมสิทธิ์[ nb 5 ] | ระบบคล้าย Unix , macOS | เวอร์ชัน ฟรี ที่ได้รับอนุญาตภายใต้ CDDLหรือเวอร์ชันเสียเงินในระบบปฏิบัติการ UNIX บางรุ่น |
| ทีมสตาร์ | บอร์แลนด์ ( ไมโครโฟกัส ) | เลิกผลิตแล้ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | รองรับ ระบบ Windowsและข้ามแพลตฟอร์มผ่านไคลเอ็นต์ที่ใช้ Java | จ่าย |
| การบ่อนทำลาย | มูลนิธิซอฟต์แวร์ Apache [ 7 ] | รักษาไว้ | ไคลเอนต์-เซิร์ฟเวอร์ | รวมหรือล็อก[ nb 6 ] | อะปาเช่-2.0 | ระบบปฏิบัติการคล้าย Unix , Windows , macOS | ฟรี |
| เซอร์ราวด์ เอสซีเอ็ม | เพอร์ฟอร์ซ | ไม่ได้รับการบำรุงรักษา | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | ลินุกซ์ , วินโดวส์ , มอสซาเรลล่า | ราคา 595 ดอลลาร์ต่อผู้ใช้; ค่าสมัครสมาชิกรายเดือน 29 ดอลลาร์ |
| การควบคุมเวอร์ชันของ Unity | ยูนิตี้ เทคโนโลยีส์ | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์และแบบกระจาย | ผสานหรือล็อก | กรรมสิทธิ์ | ลินุกซ์ , วินโดวส์ , มอสซาเรลล่า | ใช้งานได้ฟรีสำหรับผู้ใช้สูงสุด 3 ราย มิฉะนั้นจะเริ่มต้นที่ 7 ดอลลาร์ต่อผู้ใช้ต่อเดือนสำหรับเวอร์ชันที่โฮสต์บนเซิร์ฟเวอร์ หรือ 23 ดอลลาร์ต่อผู้ใช้ต่อเดือนสำหรับเวอร์ชันที่ติดตั้งในองค์กร ไม่มีใบอนุญาตแบบถาวร[ 8 ] |
| ห้องนิรภัย | บริษัท ซอร์สเกียร์ จำกัด | คล่องแคล่ว | ไคลเอนต์-เซิร์ฟเวอร์ | ผสานหรือล็อก | กรรมสิทธิ์ | ระบบปฏิบัติการคล้ายยูนิกส์ , ลินุกซ์ , วินโดวส์ | 300 ดอลลาร์ต่อผู้ใช้ |
| เวสต้า | คอมแพค | เลิกผลิตแล้ว | ตัวเลือกการจำลองโปรโตคอล NFS แบบกระจาย เพื่อเชื่อม โยงไคลเอ็นต์และ/หรือเซิร์ฟเวอร์ ได้ตามต้องการ | ล็อกสาขา; ผสานสาขาต่อสาขา | แอลจีพีแอล | Tru64 , ลินุกซ์ | ฟรี |
| ซอฟต์แวร์ | ผู้ดูแลระบบ | สถานะการพัฒนา | แบบจำลองคลังเก็บข้อมูล | แบบจำลองความพร้อมกัน | ใบอนุญาต | แพลตฟอร์มที่รองรับ | ต้นทุนทางการเงิน |
ข้อมูลทางเทคนิค
ตารางต่อไปนี้แสดงรายละเอียดทางเทคนิคของซอฟต์แวร์ควบคุมเวอร์ชันที่เป็นที่รู้จักกันดีบางส่วน โดยแบ่งประเภทตามหัวข้อดังต่อไปนี้:
คำอธิบายตาราง
- ซอฟต์แวร์ : ชื่อของแอปพลิเคชันที่กำลังอธิบายอยู่
- ภาษาโปรแกรม : ภาษาเขียนโค้ดที่ใช้ในการพัฒนาแอปพลิเคชัน
- วิธีการจัดเก็บ : อธิบายรูปแบบการจัดเก็บไฟล์ในที่เก็บข้อมูล Snapshotหมายถึงไฟล์ที่ได้รับการยืนยันแล้วจะถูกจัดเก็บไว้ทั้งหมด โดยปกติจะถูกบีบอัด ส่วน Changesetในบริบทนี้ หมายถึงไฟล์ที่ได้รับการยืนยันแล้วจะถูกจัดเก็บในรูปแบบของความแตกต่างระหว่างเวอร์ชันก่อนหน้ากับเวอร์ชันถัดไป
- ขอบเขตของการเปลี่ยนแปลง : อธิบายว่าการเปลี่ยนแปลงนั้นถูกบันทึกไว้สำหรับไฟล์ แต่ละไฟล์ หรือสำหรับโครงสร้างไดเร็กทอรี
- รหัสการแก้ไข (Revision IDs ): ใช้ภายในเพื่อระบุเวอร์ชันเฉพาะของไฟล์ในที่เก็บข้อมูล ระบบอาจใช้ ตัวระบุ แบบสุ่มเทียมแฮชเนื้อหาของการแก้ไข หรือชื่อไฟล์ที่มีหมายเลขเวอร์ชันเรียงลำดับ (เนมสเปซ) สำหรับ Integrated Difference การแก้ไขจะอิงตาม Changeset เอง ซึ่งสามารถอธิบายการเปลี่ยนแปลงในไฟล์มากกว่าหนึ่งไฟล์ได้
- โปรโตคอลเครือข่าย : แสดงรายการโปรโตคอลที่ใช้สำหรับการซิงโครไนซ์การเปลี่ยนแปลง
- ขนาดซอร์สโค้ด : ระบุขนาดของซอร์สโค้ดในหน่วยเมกะไบต์
| ซอฟต์แวร์ | ภาษาโปรแกรม | วิธีการจัดเก็บ | ขอบเขตของการเปลี่ยนแปลง | รหัสการแก้ไข | โปรโตคอลเครือข่าย | ขนาดของซอร์สโค้ด |
|---|---|---|---|---|---|---|
| AccuRev SCM | ซี++จาวา | การเปลี่ยนแปลง | ไฟล์ | คู่ตัวเลข NN/NN | กำหนดเอง | ไม่ทราบ |
| Azure DevOps | C++และC# | การเปลี่ยนแปลง | ไฟล์และต้นไม้ | ตัวเลข | SOAP ผ่าน HTTP หรือ HTTPS, SSH | ไม่ทราบ |
| ตลาด GNU | Python 2 , Pyrex (ไม่จำเป็น) , C [ nb 7 ] | ภาพถ่าย | ต้นไม้ | สุ่มเทียม | กำหนดเอง, กำหนดเองผ่านSSH , กำหนดเองผ่านHTTP , HTTP , SFTP , FTP , ชุดอีเมล, [หมายเหตุ 8 ] WebDAV (พร้อมปลั๊กอิน) | 4.1 MB |
| บิตคีปเปอร์ | ซี | การเปลี่ยนแปลง | ต้นไม้ | คีย์ชุดเปลี่ยนหมายเลข | กำหนดเอง, HTTP , rsh , ssh , อีเมล | 99 MB |
| ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | C , C++ , Java , HTML | ชุดการเปลี่ยนแปลงและสแนปช็อต | ไฟล์และต้นไม้ | ตัวเลข | HTTP , TCP/IP | ไม่ทราบ |
| IBM DevOps Code ClearCase | C , Java , Perl | การเปลี่ยนแปลง | ไฟล์และต้นไม้[ 9 ] | ตัวเลข | กำหนดเอง (CCFS), กำหนดเอง ( ไดรเวอร์ระบบไฟล์ MVFS ), HTTP | ไม่ทราบ |
| โค้ด สหกรณ์ | ซี++ | การเปลี่ยนแปลง | ไม่ทราบ | รหัสผู้ใช้-ลำดับ | อีเมล ( MAPI , SMTP / POP3 , Gmail ), LAN | ไม่ทราบ |
| ซีวีเอส | ซี | การเปลี่ยนแปลง | ไฟล์ | ตัวเลข | พีเซิร์ฟเวอร์, เอสเอช | 10.3 MB |
| ซีวีเอสเอ็นที | ซี++ | การเปลี่ยนแปลง | ไฟล์และต้นไม้[ 10 ] | ตัวเลข | การตั้งค่าแบบกำหนดเองผ่านSSH , SSPI, SServer, GServer และ PServer | 55 MB |
| ดาร์คส์ | ฮัสเคลล์ | ชุดการเปลี่ยนแปลง (แพทช์) [ nb 9 ] | ต้นไม้ | ไม่มีข้อมูล | กำหนดเองผ่านSSH , HTTP , อีเมล | 1.7 MB |
| ขนาด (ซม.) | C , C++ , Java , C# | สแนปช็อตหรือชุดการเปลี่ยนแปลง | ไฟล์และต้นไม้ | ตัวเลข | กำหนดเอง, HTTP / HTTPS | ไม่ทราบ |
| ฟอสซิล | ซี | สแนปช็อตหรือชุดการเปลี่ยนแปลง[ 11 ] | ต้นไม้ | แฮช SHA-1หรือSHA-3 [ 12 ] | HTTP / HTTPS , กำหนดเองผ่านSSH | 7.2 MB [ nb 10 ] |
| กิต | ภาษาซี , สคริปต์เชลล์ , ภาษาเพิร์ล | ภาพถ่าย | ต้นไม้ | แฮ ช SHA-1หรือSHA-256 [ 13 ] | กำหนดเอง ( git ), กำหนดเองผ่านssh , [ 14 ] HTTP / HTTPS , rsync , อีเมล, บันเดิล | 23 MB [ 15 ] |
| สถาปัตยกรรม GNU | C , สคริปต์เชลล์ | การเปลี่ยนแปลง | ต้นไม้ | ตัวเลข | HTTP , WebDAV | ไม่ทราบ |
| ไอซี แมเนจ | ซี++ , ซี | การเปลี่ยนแปลง | ไม่ทราบ | ตัวเลข | กำหนดเอง | ไม่ทราบ |
| เปลี่ยนแปลงง่าย | ไพธอน , ซี | การเปลี่ยนแปลง | ต้นไม้ | ตัวเลข[ nb 11 ] แฮ ช SHA-1 | การกำหนดค่าผ่านSSH , HTTPและชุดอีเมล (ด้วยปลั๊กอินมาตรฐาน) | 20 MB |
| เอ็มเคเอส อินทิกอรี่ | ซี , จาวา | การเปลี่ยนแปลง | ไฟล์ | ตัวเลข | กำหนดเอง, HTTP | ไม่ทราบ |
| โมโนโทน | ซี++ | ไฮบริด[ nb 12 ] | ต้นไม้ | แฮ ช SHA-1 | กำหนดเอง ( netsync ), กำหนดเองผ่านssh , ระบบไฟล์ | 4.4 MB |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | ซี++ , ซี | การเปลี่ยนแปลง | ต้นไม้ | ตัวเลข | กำหนดเอง | ไม่ทราบ |
| พีวีซี | ซี++ , ซี | การเปลี่ยนแปลง | ไฟล์ | ตัวเลข | ไม่ทราบ | ไม่ทราบ |
| คอนเสิร์ตทีมราชันย์ | ชวา | การเปลี่ยนแปลง | ต้นไม้ | ตัวเลข | บริการ RESTผ่านHTTP / HTTPS | ไม่ทราบ |
| ระบบควบคุมการแก้ไข | ซี | การเปลี่ยนแปลง | ไฟล์ | ตัวเลข | ระบบไฟล์ | 5.3 MB |
| ระบบควบคุมซอร์สโค้ด | ซี | การเปลี่ยนแปลง | ไฟล์ | ตัวเลข | เอ็นเอฟเอส | 1.3 MB |
| ทีมสตาร์ | C++ , C , Java | ภาพถ่าย | ไฟล์และต้นไม้ | แฮช MD5 | กำหนดเอง, TCP/IP | ไม่ทราบ |
| การบ่อนทำลาย | ซี | ชุดการเปลี่ยนแปลงและสแนปช็อต | ต้นไม้ | ตัวเลข | กำหนดเอง ( svn ), กำหนดเองผ่านssh , HTTPและ SSL (โดยใช้WebDAV ) | 41 MB |
| เซอร์ราวด์ เอสซีเอ็ม | ซี++ | การเปลี่ยนแปลง | ไฟล์และต้นไม้ | ตัวเลข | ทซีพีไอ | ไม่ทราบ |
| การทำงานร่วมกัน | ชวา | ชุดการเปลี่ยนแปลง (ข้อความ), สแนปช็อต (ไบนารี) | ไฟล์ | ตัวเลข | กำหนดเอง, กำหนดเองผ่านSSH , HTTP | ไม่ทราบ |
| ห้องนิรภัย | ซี# | การเปลี่ยนแปลง | ไฟล์และต้นไม้ | ตัวเลข | HTTP , HTTPS | ไม่ทราบ |
| เวสต้า | ซี++ | ภาพถ่าย | ต้นไม้ | ไม่ทราบ | เอ็นเอฟเอส | 15.8 MB |
| Visual SourceSafe | ซี | ภาพถ่าย | ไฟล์ | ตัวเลข | SMB , DCOM | ไม่ทราบ |
| ซอฟต์แวร์ | ภาษาโปรแกรม | วิธีการจัดเก็บ | ขอบเขตของการเปลี่ยนแปลง | รหัสการแก้ไข | โปรโตคอลเครือข่าย | ขนาดของซอร์สโค้ด |
คุณสมบัติ
ตารางต่อไปนี้จัดประเภทซอฟต์แวร์ที่มีชื่อเสียงบางส่วนตามคุณสมบัติและความสามารถ:
คำอธิบายตาราง
- ซอฟต์แวร์ : ชื่อของแอปพลิเคชันที่กำลังอธิบายอยู่
- รองรับรูปแบบข้อมูล Git : สามารถทำงานกับรูปแบบที่เก็บข้อมูลของ Git ได้โดยตรง
- คอมมิตแบบอะตอมิก (Atomic commits ): หมายถึงการรับประกันว่าการเปลี่ยนแปลงทั้งหมดจะเกิดขึ้นจริง หรือจะไม่มีการเปลี่ยนแปลงใดๆ เลย
- การเปลี่ยนชื่อไฟล์ : อธิบายว่าระบบอนุญาตให้เปลี่ยนชื่อไฟล์โดยยังคงรักษาประวัติเวอร์ชันของไฟล์ไว้หรือไม่
- การรวมการเปลี่ยนชื่อไฟล์ : อธิบายว่าระบบสามารถรวมการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ในสาขาหนึ่งเข้ากับไฟล์เดียวกันที่ถูกเปลี่ยนชื่อในอีกสาขาหนึ่งได้หรือไม่ (หรือในทางกลับกัน) หากไฟล์เดียวกันถูกเปลี่ยนชื่อในทั้งสองสาขา จะเกิดข้อขัดแย้งในการเปลี่ยนชื่อที่ผู้ใช้ต้องแก้ไข
- ลิงก์เชิงสัญลักษณ์ : อธิบายว่าระบบอนุญาตให้ควบคุมเวอร์ชันของลิงก์เชิงสัญลักษณ์เหมือนกับไฟล์ทั่วไปหรือไม่ การกำหนดเวอร์ชันของลิงก์เชิงสัญลักษณ์นั้น บางคนมองว่าเป็นคุณสมบัติที่ดี ในขณะที่บางคนมองว่าเป็นช่องโหว่ด้านความปลอดภัย (เช่น ลิงก์เชิงสัญลักษณ์ไปยัง /etc/passwd) ลิงก์เชิงสัญลักษณ์ได้รับการสนับสนุนเฉพาะบนแพลตฟอร์มที่เลือกเท่านั้น ขึ้นอยู่กับซอฟต์แวร์นั้นๆ
- ฮุกก่อน/หลังเหตุการณ์ : บ่งชี้ถึงความสามารถในการเรียกใช้คำสั่งก่อนหรือหลังการกระทำ เช่น การยืนยันการเปลี่ยนแปลง จะเกิดขึ้น
- การแก้ไขที่ลงนามแล้ว : หมายถึงการ ลงนามดิจิทัลแบบบูรณาการในการแก้ไข โดยใช้รูปแบบเช่นOpenPGP
- การติดตามการผสาน (Merge tracking ): อธิบายว่าระบบจดจำหรือไม่ว่ามีการเปลี่ยนแปลงใดบ้างที่ถูกผสานระหว่างสาขาต่างๆ และจะผสานเฉพาะการเปลี่ยนแปลงที่ขาดหายไปเมื่อผสานสาขาหนึ่งเข้ากับอีกสาขาหนึ่ง
- การแปลงอักขระขึ้นบรรทัดใหม่ : อธิบายว่าระบบสามารถปรับอักขระขึ้นบรรทัดใหม่สำหรับไฟล์ข้อความให้ตรงกับรูปแบบอักขระขึ้นบรรทัดใหม่ของระบบปฏิบัติการที่ใช้งานอยู่ได้หรือไม่ ระดับการควบคุมจะแตกต่างกันไป ตัวอย่างเช่น Subversion สามารถกำหนดค่าให้จัดการอักขระขึ้นบรรทัดใหม่แตกต่างกันไปตามประเภทไฟล์ ในขณะที่ Perforce แปลงไฟล์ข้อความทั้งหมดตามการตั้งค่าเดียวต่อไคลเอนต์
- แท็ก : ระบุว่าสามารถตั้งชื่อที่มีความหมายให้กับการแก้ไขเฉพาะเจาะจงได้หรือไม่ โดยไม่คำนึงว่าชื่อเหล่านั้นจะเรียกว่าแท็กหรือป้ายกำกับ
- การรองรับในระดับสากล : ระบุว่าซอฟต์แวร์รองรับสภาพแวดล้อมภาษาและระบบปฏิบัติการหลายภาษาหรือไม่
- การรองรับชื่อไฟล์ Unicode : ระบุว่าซอฟต์แวร์รองรับการทำงานร่วมกันระหว่างระบบไฟล์ที่ใช้การเข้ารหัสอักขระ ต่างกันหรือ ไม่
- รองรับคลังเก็บข้อมูลขนาดใหญ่ : ระบบสามารถจัดการกับคลังเก็บข้อมูลขนาดประมาณหนึ่งกิกะไบต์ขึ้นไปได้อย่างมีประสิทธิภาพหรือไม่?
| ซอฟต์แวร์ | รองรับรูปแบบข้อมูล Git | คอมมิตอะตอมิก | การเปลี่ยนชื่อไฟล์ | รวมการเปลี่ยนชื่อไฟล์ | ลิงก์เชิงสัญลักษณ์ | การเชื่อมโยงก่อน/หลังเหตุการณ์ | การแก้ไขที่ ลงนามแล้ว | การติดตามการผสาน | การแปลง ท้ายบรรทัด | แท็ก | การสนับสนุนจากนานาชาติ | รองรับชื่อไฟล์แบบ Unicode | รองรับพื้นที่เก็บข้อมูลขนาดใหญ่ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AccuRev SCM | ใช่ | ใช่ | บางส่วน[ nb 13 ] | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่มีข้อมูล | ใช่ | ใช่[ 16 ] | ใช่[ 17 ] [ 18 ] | |
| Azure DevOps | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
| ตลาด GNU | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ 19 ] | ใช่ | ใช่ | ใช่ | ไม่ทราบ | |
| บิตคีปเปอร์ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | ใช่ | |
| ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | |
| IBM DevOps Code ClearCase | บางส่วน[ nb 14 ] | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ 20 ] | ไม่ทราบ | ใช่ | |
| โค้ด สหกรณ์ | ใช่ | ใช่ | ใช่ | เลขที่ | บางส่วน | เลขที่ | เลขที่ | เลขที่ | ใช่ | ไม่ทราบ | ไม่ทราบ | ไม่ทราบ | |
| ซีวีเอส | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | บางส่วน | เลขที่ | เลขที่ | ใช่ | ใช่ | ไม่ทราบ | เลขที่ | ใช่ |
| ซีวีเอสเอ็นที | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
| ดาร์คส์ | ใช่ | ใช่ | ใช่ | หมายเลข[ nb 15 ] | ใช่ | ใช่ | ไม่มีข้อมูล[ nb 16 ] | เลขที่ | ใช่ | เลขที่ | ใช่[ nb 17 ] | ไม่ทราบ | |
| ขนาด (ซม.) | ใช่ | ใช่ | ใช่ | เลขที่ | ใช่ | ไม่ทราบ | ใช่ | ใช่ | ใช่[ nb 18 ] | หมายเลข[ nb 19 ] | ใช่ | ใช่ | |
| ฟอสซิล | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ 21 ] | ใช่ | ใช่ | ใช่[ nb 20 ] | ใช่ | ใช่ | ใช่ | ใช่[ 22 ] | |
| กิต | ใช่ | ใช่ | บางส่วน[ nb 21 ] | ใช่ | ใช่ | ใช่ | ใช่[ nb 22 ] | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ nb 23 ] | บางส่วน[ nb 24 ] |
| สถาปัตยกรรม GNU | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | ใช่ | ไม่ทราบ | ไม่ทราบ | ไม่ทราบ | |
| ไอซี แมเนจ | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | |
| เอ็มเคเอส อินทิกอรี่ | ใช่ | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่[ nb 25 ] | ใช่[ nb 26 ] | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | |
| เปลี่ยนแปลงง่าย | บางส่วน[ 23 ] [ 24 ] | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ nb 27 ] | บางส่วน[ nb 28 ] | ใช่[ 25 ] |
| โมโนโทน | ใช่ | ใช่ | ใช่ | ไม่[ nb 29 ] | ใช่ | ใช่ บังคับ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ไม่ทราบ | |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | ใช่ | ใช่[ 26 ] | ใช่[ 27 ] | บางส่วน[ nb 30 ] | ใช่ | เลขที่ | ใช่[ 28 ] | ใช่ | ใช่ | ใช่[ 29 ] | ใช่[ 30 ] | ใช่ | |
| คอนเสิร์ตทีมราชันย์ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ nb 31 ] | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | |
| ระบบควบคุมซอร์สโค้ด | เลขที่ | ใช่ | เลขที่ | ไม่มีข้อมูล | ไม่มีข้อมูล | เลขที่ | เลขที่ | ใช่ | เลขที่ | เลขที่ | บางส่วน[ nb 32 ] | ใช่ | ใช่ |
| ทีมสตาร์ | ใช่[ nb 33 ] | ใช่ | ไม่ทราบ | ใช่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | |
| การบ่อนทำลาย | เลขที่ | ใช่ | ใช่[ nb 34 ] | บางส่วน[ nb 35 ] | ใช่ | ใช่ | หมายเลข[ nb 36 ] | ใช่[ nb 37 ] | ใช่ | บางส่วน[ nb 38 ] | ใช่ | ใช่ | ใช่ |
| เซอร์ราวด์ เอสซีเอ็ม | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ 31 ] | ใช่ | ใช่ | ใช่ | |
| การทำงานร่วมกัน | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่[ nb 39 ] | ใช่ | |
| ห้องนิรภัย | ใช่ | ใช่ | ใช่ | เลขที่ | ใช่ | เลขที่ | เลขที่ | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | ไม่ทราบ | |
| เวสต้า | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | ใช่ | เลขที่ | เลขที่ | เลขที่ | ใช่ | เลขที่ | ไม่ทราบ | ใช่ | |
| Visual SourceSafe | เลขที่ | หมายเลข[ nb 40 ] | ไม่ทราบ | เลขที่ | ใช่ | เลขที่ | เลขที่ | ไม่ทราบ | ใช่ | ใช่ | ไม่ทราบ | ไม่ทราบ | |
| ซอฟต์แวร์ | คอมมิตอะตอมิก | การเปลี่ยนชื่อไฟล์ | รวมการเปลี่ยนชื่อไฟล์ | ลิงก์เชิงสัญลักษณ์ | การเชื่อมโยงก่อน/หลังเหตุการณ์ | การแก้ไขที่ ลงนามแล้ว | การติดตามการผสาน | การแปลง ท้ายบรรทัด | แท็ก | การสนับสนุนจากนานาชาติ | รองรับชื่อไฟล์แบบ Unicode | รองรับพื้นที่เก็บข้อมูลขนาดใหญ่ |
คุณสมบัติขั้นสูง
ต่อไปนี้คือคุณสมบัติและฟังก์ชันการทำงานขั้นสูงเพิ่มเติมที่มีอยู่ในระบบควบคุมเวอร์ชันที่โดดเด่นบางระบบ:
คำอธิบายตาราง
- การขยายคำหลัก : รองรับการขยายคำหลักโดยอัตโนมัติ เช่น หมายเลขแก้ไขไฟล์
- การคอมมิตแบบโต้ตอบ : การคอมมิตแบบโต้ตอบช่วยให้ผู้ใช้สามารถเลือกบรรทัดโค้ดทั่วไปที่ใช้เป็นจุดยึดของไฟล์ (ส่วนย่อยของโค้ด) ซึ่งจะกลายเป็นส่วนหนึ่งของการคอมมิต (โดยปล่อยให้การเปลี่ยนแปลงที่ไม่ได้เลือกยังคงเป็นการเปลี่ยนแปลงในสำเนาการทำงาน) แทนที่จะมีความละเอียดระดับไฟล์เพียงอย่างเดียว
- การอ้างอิงภายนอก : การฝังแหล่งเก็บข้อมูลภายนอกลงในโครงสร้างซอร์สโค้ด
- การดึงข้อมูล/โคลนบางส่วน : ความสามารถในการดึงข้อมูลหรือโคลนเฉพาะไดเร็กทอรีย่อยที่ระบุไว้จากที่เก็บข้อมูล
- สิทธิ์การเข้าถึง : บันทึกข้อมูลสิทธิ์การเข้าถึงไฟล์ในประวัติการแก้ไข
- การรักษาระบบเวลาแก้ไข ล่าสุด : จะเขียนทับค่าที่แก้ไขล่าสุดด้วยเวลาที่ทำการคอมมิตเมื่อทำการเช็คเอาท์
- เครื่องมือผสานไฟล์อัตโนมัติแบบกำหนดเอง : สามารถลองใช้เครื่องมือผสานไฟล์อัตโนมัติได้โดยใช้เครื่องมือใดก็ได้ตามที่ผู้ใช้เลือก (หวังว่าจะสามารถกำหนดค่าได้ในแต่ละไฟล์)
- รูปแบบที่รองรับ : รองรับการอ่าน/เขียน หรืออ่านอย่างเดียว (ต้องแปลงไฟล์ซ้ำ)
- แคชการสร้างอ็อบเจ็กต์ที่ได้มาแบบใช้ร่วมกัน : ความสามารถในการแทนที่ (wink-in) อ็อบเจ็กต์ที่ได้มาซึ่งสร้างโดยไคลเอ็นต์อื่น ๆ ที่ใช้ร่วมกันซึ่งมีส่วนประกอบที่เหมือนกันทุกประการโดยอัตโนมัติ แทนที่จะสร้างใหม่ในเครื่อง
| ซอฟต์แวร์ | การขยายคำหลัก | คอมมิตแบบโต้ตอบ | แหล่งอ้างอิงภายนอก | การชำระเงิน บางส่วน/การคัดลอก | สิทธิ์การเข้าถึง | การรักษาระบบประทับเวลา | เครื่องมือผสานอัตโนมัติแบบกำหนดเอง | รูปแบบที่รองรับ | แคชการสร้างที่ใช้ร่วมกันของอ็อบเจ็กต์ที่ได้มา |
|---|---|---|---|---|---|---|---|---|---|
| AccuRev SCM | ใช่ | ไม่ทราบ | ใช่ | ใช่ | บิตการดำเนินการเท่านั้น | ใช่ | ใช่ | git (bi-dir) [ 32 ] | เลขที่ |
| Azure DevOps | เลขที่ | ใช่ | ไม่ทราบ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ไม่ทราบ | ไม่ทราบ |
| ตลาด GNU | ใช่[ 33 ] | ใช่[ 34 ] | ใช่[ 35 ] | เลขที่ | บิตการดำเนินการเท่านั้น | หมายเลข[ nb 41 ] | ใช่[ 36 ] | bzr, subversion, [ 37 ] git, [ 38 ] hg, [ 39 ]ใดๆ ที่มี fastexporter | เลขที่ |
| บิตคีปเปอร์ | POSIXและRCS | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | บิตคีปเปอร์ | เลขที่ |
| ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | เลขที่ | ใช่ | เลขที่ | ใช่ | บิตการดำเนินการเท่านั้น | ใช่ | ใช่ | ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | เลขที่ |
| IBM DevOps Code ClearCase | ใช่[ 40 ] | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่[ nb 42 ] | ใช่ | เคสใส | ใช่ |
| ซีวีเอส | อาร์ซีเอส | เลขที่ | ใช่ | ใช่[ nb 43 ] | บางส่วน[ nb 44 ] | ใช่ | เลขที่ | ซีวีเอส | เลขที่ |
| ซีวีเอสเอ็นที | อาร์ซีเอส | ใช่[ nb 45 ] | ใช่[ nb 46 ] | ใช่[ nb 47 ] | ใช่ | ใช่ | เลขที่ | ซีวีเอส | ใช่[ nb 48 ] |
| ดาร์คส์ | เลขที่ | ใช่ | เลขที่ | หมายเลข[ nb 49 ] | บางส่วน[ nb 50 ] | เลขที่ | ความขัดแย้งเท่านั้น | ดาร์คส์ | เลขที่ |
| ขนาด (ซม.) | ใช่ | เลขที่ | ใช่[ nb 51 ] | ใช่ | ใช่ | ใช่ | ใช่ | การย้ายข้อมูลจาก ClearCase, Subversion, CVS, PVCS, ChangeMan DS | ไม่ทราบ |
| ฟอสซิล | เลขที่ | ใช่ | ใช่[ nb 52 ] | เลขที่ | บิตการดำเนินการเท่านั้น[ 41 ] | เลขที่ | เลขที่ | ฟอสซิล (ใช้ sqlite) ใดๆ ที่มี fastexporter; [ 42 ]การย้ายจาก git และ svn [ 43 ] | เลขที่ |
| กิต | ใช่[ nb 53 ] | ใช่[ nb 54 ] | ใช่[ 44 ] | ใช่[ 45 ] | บิตการดำเนินการเท่านั้น | ไม่[ nb 55 ] | ใช่ | git, cvs, subversion, hg หรือโปรแกรมใดๆ ที่มี fastexporter | เลขที่ |
| เปลี่ยนแปลงง่าย | ใช่[ 46 ] | ใช่[ 47 ] | ใช่[ 48 ] | ใช่[ 49 ] | บิตการดำเนินการเท่านั้น | ผ่านการขยาย (อัลฟา) [ 50 ] | ใช่[ 51 ] | hg, subversion, [ 52 ]การผลักและดึงข้อมูลแบบสองทางที่ไม่สูญเสียจาก git, [ 53 ]การย้ายข้อมูลจากรูปแบบอื่นใดที่รองรับโดยส่วนขยาย Convert: [ 54 ] CVS, Darcs, Bazaar, Monotone, GNU Arch และ Perforce [ 55 ] | เลขที่ |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | ใช่[ 56 ] | เลขที่ | เลขที่ | ใช่ | ใช่ | ใช่[ 56 ] | ใช่[ 56 ] | เพอร์ฟอร์ซ | เลขที่ |
| คอนเสิร์ตทีมราชันย์ | เลขที่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ไม่มีข้อมูล | เลขที่ |
| ระบบควบคุมซอร์สโค้ด | ใช่ | เลขที่ | ไม่มีข้อมูล | ใช่ | บิตการดำเนินการเท่านั้น | บางรูปแบบ | เลขที่ | เอสซีซีเอส | เลขที่ |
| เซอร์ราวด์ เอสซีเอ็ม | ใช่ | เลขที่ | เลขที่ | ใช่ | เลขที่ | ใช่ | ใช่[ nb 56 ] | ล้อมรอบ | เลขที่ |
| การบ่อนทำลาย | ใช่[ 57 ] | บางส่วน[ nb 57 ] | ใช่[ 58 ] | ใช่ | บิตการดำเนินการเท่านั้น | บางส่วน[ nb 58 ] | ใช่[ nb 59 ] | การบ่อนทำลาย | เลขที่ |
| เวสต้า | เลขที่ | เลขที่ | ใช่ ผ่านทาง SDL | เลขที่ | ไม่ทราบ | ใช่ | เลขที่ | เวสต้า | ใช่ |
| Visual SourceSafe | ใช่ | ไม่ทราบ | ไม่ทราบ | ใช่ | ใช่ | ไม่ทราบ | ใช่ | ไม่ทราบ | เลขที่ |
| ซอฟต์แวร์ | การขยายคำหลัก | คอมมิตแบบโต้ตอบ | แหล่งอ้างอิงภายนอก | การชำระเงิน บางส่วน/การคัดลอก | สิทธิ์การเข้าถึง | การรักษาระบบประทับเวลา | เครื่องมือผสานอัตโนมัติแบบกำหนดเอง | รูปแบบที่รองรับ | แคชการสร้างที่ใช้ร่วมกันของอ็อบเจ็กต์ที่ได้มา |
คำสั่งพื้นฐาน
ตารางต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งต่างๆ ที่มีอยู่ในระบบควบคุมเวอร์ชันที่สำคัญ
คำอธิบายตาราง
- เริ่มต้นใช้งาน Repository : สร้าง Repository ว่างเปล่าใหม่ (เช่น ฐานข้อมูลควบคุมเวอร์ชัน)
- โคลน : สร้างอินสแตนซ์ที่เหมือนกันทุกประการของที่เก็บข้อมูล (ในธุรกรรมที่ปลอดภัย)
- pull : ดาวน์โหลดเวอร์ชันแก้ไขจากที่เก็บข้อมูลระยะไกลไปยังที่เก็บข้อมูลในเครื่อง
- push : อัปโหลดการแก้ไขจากที่เก็บข้อมูลในเครื่องไปยังที่เก็บข้อมูลระยะไกล
- สาขาภายในเครื่อง : สร้างสาขาภายในเครื่องที่ไม่ปรากฏในที่เก็บข้อมูลระยะไกลต้นฉบับ
- เช็คเอาท์ : สร้างสำเนาใช้งานในเครื่องจากที่เก็บข้อมูล (ระยะไกล)
- อัปเดต : อัปเดตไฟล์ในสำเนาที่ใช้งานอยู่ด้วยเวอร์ชันล่าสุดจากที่เก็บข้อมูล
- ล็อก : ล็อกไฟล์ในที่เก็บข้อมูลเพื่อป้องกันไม่ให้ผู้ใช้รายอื่นแก้ไข
- เพิ่ม : ทำเครื่องหมายไฟล์ที่ระบุเพื่อเพิ่มลงในที่เก็บข้อมูลในการคอมมิตครั้งถัดไป
- ลบ : ทำเครื่องหมายไฟล์ที่ระบุเพื่อลบออกในการคอมมิตครั้งถัดไป (หมายเหตุ: จะคงประวัติการแก้ไขที่สอดคล้องกันทั้งก่อนและหลังการลบ)
- move : ทำเครื่องหมายไฟล์ที่ระบุเพื่อย้ายไปยังตำแหน่งใหม่ในการคอมมิตครั้งถัดไป
- คัดลอก : ทำเครื่องหมายไฟล์ที่ระบุเพื่อคัดลอกในการยืนยันครั้งถัดไป
- ผสาน : นำความแตกต่างระหว่างสองแหล่งข้อมูลไปใช้กับเส้นทางสำเนาที่ใช้งานอยู่
- commit : บันทึกการเปลี่ยนแปลงใน repository
- ย้อนกลับ : กู้คืนไฟล์สำเนาการทำงานจากที่เก็บข้อมูล
- สร้างไฟล์รวม : สร้างไฟล์ที่มีชุดการเปลี่ยนแปลงที่บีบอัดแล้วของที่เก็บข้อมูลที่กำหนด
- rebase : ส่งต่อการเปลี่ยนแปลงภายในไปยังส่วนหัวอัปสตรีมที่อัปเดตแล้ว
- หมายเหตุ:คำสั่งที่อยู่ในกรอบสีเขียวซึ่งไม่ได้ล้อมรอบด้วย [วงเล็บเหลี่ยม] คือคำสั่งที่ใช้ในบรรทัดคำสั่งแบบโต้ตอบ ข้อความใน [วงเล็บเหลี่ยม] คือคำอธิบายเกี่ยวกับตำแหน่งที่จะค้นหาฟังก์ชันการทำงานที่เทียบเท่ากันได้
| ซอฟต์แวร์ | เริ่มต้นคลังเก็บข้อมูล | โคลน | ดึง | ดัน | สาขาในท้องถิ่น | ชำระเงิน | อัปเดต | ล็อค | เพิ่ม | ลบ | เคลื่อนไหว | สำเนา | ผสาน | ให้สัญญา | ย้อนกลับ | สร้างไฟล์บันเดิล | ฐานใหม่ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AccuRev SCM | เอ็มเคดีโป | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | เอ็มเคสตรีม | เอ็มเควส | อัปเดต | แองเคอร์ | เพิ่ม | เลิกกิจการแล้ว | เคลื่อนไหว | cp [then] add – incl -s – ln | ผสาน | รักษาไว้ – ส่งเสริม | ล้างข้อมูล – ย้อนกลับ | ไม่มีข้อมูล | สตรีม |
| Azure DevOps | โดยใช้Git | โคลนโดยใช้Git | รับ | ให้สัญญา | ชุดชั้นวางของ | ชำระเงิน | รับ | ล็อค | เพิ่ม | ลบ | เปลี่ยนชื่อ | โดยใช้Git | ผสาน | ให้สัญญา | เลิกทำ | โดยใช้Git | รับ |
| ตลาด GNU | init – init -no-tree [ nb 60 ] – init-repo – init-repo -no-trees [ nb 61 ] | สาขา – สาขา -ไม่มีต้นไม้[ nb 62 ] | ดึง | ดัน | เริ่มต้น – สาขา | ชำระเงิน – ชำระเงิน - น้ำหนักเบา[ nb 63 ] | อัปเดต | ไม่มีข้อมูล | เพิ่ม | อาร์เอ็ม | เอ็มวี | ไม่มีข้อมูล | ผสาน | ให้สัญญา | ย้อนกลับ | ส่ง | รีเบส[ nb 64 ] |
| บิตคีปเปอร์ | การตั้งค่า | โคลน | ดึง -R | ดัน | โคลน | โค | ดึง | ไม่ทราบ | เพิ่ม | อาร์เอ็ม | เอ็มวี | ซีพี | ดึง | ให้สัญญา | เลิกทำ | เมคแพทช์ | ทรุด |
| IBM DevOps Code ClearCase | เริ่มต้น | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ชำระเงิน | อัปเดต | ล็อก – ปลดล็อก | มเคเลม | rmname | เอ็มวี | ไม่มีข้อมูล | ผสาน | เช็คอิน | ยกเลิกการชำระเงิน – rmver | ไม่มีข้อมูล | findmerge |
| ซีวีเอส | เริ่มต้น | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ชำระเงิน | อัปเดต | ไม่ทราบ | เพิ่ม | อาร์เอ็ม | ไม่มีข้อมูล | ไม่มีข้อมูล | อัปเดต -j | ให้สัญญา | ลบ [จากนั้น] อัปเดต | ไม่มีข้อมูล | ไม่มีข้อมูล |
| ซีวีเอสเอ็นที | เริ่มต้น | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ชำระเงิน | อัปเดต | แก้ไข | เพิ่ม | อาร์เอ็ม | เปลี่ยนชื่อ | ไม่มีข้อมูล | อัปเดต -j | ให้สัญญา | อัปเดต -C | ไม่มีข้อมูล | ไม่มีข้อมูล |
| ดาร์คส์ | เริ่มต้น | โคลน | ดึง[ 59 ] | ดัน | ไม่มีข้อมูล[ nb 65 ] | โคลน | ดึง[ 59 ] | ไม่ทราบ | เพิ่ม | ลบ | เคลื่อนไหว | ไม่มีข้อมูล | ดึง – ผลัก | บันทึก | ย้อนกลับ | ส่ง -o [ nb 66 ] | ฐานใหม่ |
| ฟอสซิล | ใหม่ – เปิด | โคลน | ดึง | ดัน | สาขา – คอมมิต – สาขา | โคลน/เปิด | อัปเดต | ไม่มีข้อมูล | เพิ่ม | rm/del | เปลี่ยนชื่อ | ไม่มีข้อมูล | ผสาน | ให้สัญญา | ย้อนกลับ | คลังข้อมูลของ Fossil เป็นไฟล์ SQLite ไฟล์เดียว | ไม่มีข้อมูล |
| กิต | เริ่มต้น – เริ่มต้น – เปล่า | โคลน – โคลน – เปล่า | ดึงข้อมูล | ดัน | สาขา | ชำระเงิน | ดึง | ไม่มีข้อมูล | เพิ่ม | อาร์เอ็ม | เอ็มวี | cp [then] git add [ nb 67 ] | ผสาน | ให้สัญญา | รีเซ็ตแบบฮาร์ด | บันเดิล | ฐานใหม่ |
| เปลี่ยนแปลงง่าย | เริ่มต้น | โคลน | ดึง | ดัน | คั่นหน้า[ nb 68 ] | อัปเดต – ขึ้น – ชำระเงิน – ร่วม | ดึง -u | ไม่มีข้อมูล | เพิ่ม | ลบ – rm | ย้าย – เอ็มวี | สำเนา – cp | ผสาน | คอมมิต – ci | ย้อนกลับ | บันเดิล | รีเบส[ 60 ] |
| โมโนโทน | เริ่มต้น | โคลน | ดึง | ดัน | ไม่มีข้อมูล | ชำระเงิน | อัปเดต | ไม่ทราบ | เพิ่ม | หยด | เปลี่ยนชื่อ | ไม่มีข้อมูล | ผสาน | ให้สัญญา | ย้อนกลับ | ไม่มีข้อมูล | ไม่มีข้อมูล |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | p4 client && p4 sync | พี4 ซิงค์ | พี4 ซิงค์ | p4 ส่ง | จำเป็นต้องย้ายไปยังฟีเจอร์สตรีมล่าสุด | แก้ไข | ซิงค์ | ล็อก – ปลดล็อก | เพิ่ม | ลบ | เคลื่อนไหว | สำเนา | บูรณาการ | ส่ง | ย้อนกลับ | ไม่ทราบ | ไม่มีข้อมูล |
| ระบบควบคุมซอร์สโค้ด | สร้าง | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | แอดมิน -เฟซบุ๊ก | รับ (อ่านอย่างเดียว) – แก้ไข | รับ (อ่านอย่างเดียว) – แก้ไข | ไม่มีข้อมูล[ nb 69 ] | สร้าง | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | แก้ไข -i | เดลต้า | รับ -r | ไม่มีข้อมูล | แก้ไข -i |
| การบ่อนทำลาย | svnadmin create | svnadmin hotcopy | [วิธีแก้ปัญหาชั่วคราว]: svnadmin load | [วิธีแก้ไข]: svnadmin dump | ไม่มีข้อมูล | ชำระเงิน – co | อัปเดต – ขึ้น | ล็อค | เพิ่ม | ลบ – del – remove – rm | move – mv – rename – ren | สำเนา – cp | ผสาน | คอมมิต – ci | ย้อนกลับ | ไม่มีข้อมูล | ไม่มีข้อมูล |
| เซอร์ราวด์ เอสซีเอ็ม | mkmainline | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | เอ็มเคแบรนช์ | ชำระเงิน | รับ | ชำระเงิน | เพิ่ม | อาร์เอ็ม | เคลื่อนไหว | ไม่มีข้อมูล | ผสาน | เช็คอิน | voidcheckout | ไม่มีข้อมูล | ฐานใหม่ |
| เวสต้า | วีครีเอท | วีเรปล์ | วีเรปล์ | วีเรปล์ | ไม่มีข้อมูล | เช็คเอาท์ | วาดวานซ์ | เช็คเอาท์ | [... จากนั้น] vcheckin [ nb 70 ] | วีอาร์เอ็ม | mv [then] vcheckin [ nb 71 ] | cp [then] vcheckin [ nb 72 ] | วีดิฟ | วีเช็คอิน | vcheckin -c 0 | วีเมค [หรือ] เวสต้า | วาดวานซ์ |
| Visual SourceSafe | ? | ไม่ทราบ | ไม่ทราบ | ไม่ทราบ | ไม่มีข้อมูล | Get Latest | Get Latest | Check Out | Add Files | Delete | ? | ไม่ทราบ | ? | Check In | Undo Check Out | ไม่ทราบ | ไม่ทราบ |
| ซอฟต์แวร์ | เริ่มต้นคลังเก็บข้อมูล | โคลน | ดึง | ดัน | สาขาในท้องถิ่น | ชำระเงิน | อัปเดต | ล็อค | เพิ่ม | ลบ | เคลื่อนไหว | สำเนา | ผสาน | ให้สัญญา | ย้อนกลับ | สร้างไฟล์บันเดิล | ฐานใหม่ |
คำสั่งขั้นสูง
ตารางต่อไปนี้แสดงคำสั่งที่ใช้ในการดำเนินการงานทั่วไปในระบบควบคุมเวอร์ชันที่สำคัญต่างๆ
คำอธิบายตาราง
- ชื่อย่อคำสั่ง : สร้างชื่อย่อที่กำหนดเองสำหรับคำสั่งเฉพาะหรือการรวมกันของคำสั่งเหล่านั้น
- ล็อก/ปลดล็อก : ล็อกไฟล์ไว้เพื่อป้องกันไม่ให้ผู้อื่นแก้ไขได้
- พัก/ยกเลิกการพัก : พักการเปลี่ยนแปลงบางส่วนหรือทั้งหมดในไดเร็กทอรีการทำงานไว้ชั่วคราว
- ย้อนกลับ : ลบแพทช์/การแก้ไขออกจากประวัติ
- การเลือกเฉพาะส่วนที่ ต้องการแก้ไข (Cherry-picking) : ย้ายเฉพาะส่วนที่ต้องการแก้ไขจากสาขาหนึ่งไปยังอีกสาขาหนึ่ง (แทนที่จะรวมสาขาเข้าด้วยกัน)
- Bisect : การค้นหาแบบไบนารีในประวัติของซอร์สโค้ดเพื่อหาการเปลี่ยนแปลงที่ทำให้เกิดหรือแก้ไขข้อผิดพลาด
- ขาเข้า/ขาออก : ตรวจสอบความแตกต่างระหว่างที่เก็บข้อมูลในเครื่องและที่เก็บข้อมูลระยะไกล (แพตช์ที่จะถูกดึง/ส่งเมื่อมีการดึง/ผลักข้อมูล)
- Grep : ค้นหาบรรทัดที่ตรงกับรูปแบบในที่เก็บข้อมูล
- บันทึก : รวมเฉพาะการเปลี่ยนแปลงบางส่วนของไฟล์ในการคอมมิตเท่านั้น ไม่รวมการเปลี่ยนแปลงอื่นๆ
- หมายเหตุ : คำสั่งที่อยู่ในกรอบสีเขียวซึ่งไม่ได้ล้อมรอบด้วย [วงเล็บเหลี่ยม] คือคำสั่งที่ใช้ในบรรทัดคำสั่งแบบโต้ตอบ ข้อความใน [วงเล็บเหลี่ยม] คือคำอธิบายเกี่ยวกับตำแหน่งที่จะค้นหาฟังก์ชันการทำงานที่เทียบเท่ากันได้
| ซอฟต์แวร์ | ชื่อเรียกแทนคำสั่ง | ล็อก/ปลดล็อก | วาง/นำออกจากชั้นวาง | ย้อนกลับ | การเลือกเชอร์รี่ | แบ่งครึ่ง | ขาเข้า/ขาออก | เกรป | บันทึก |
|---|---|---|---|---|---|---|---|---|---|
| AccuRev SCM | ไม่มีข้อมูล | เปิดใช้งานการล็อกไฟล์ | ไม่มีข้อมูล | ย้อนกลับ - ล้างข้อมูล | ส่งเสริม | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่ทราบ |
| Azure DevOps | ใช่ | ล็อก/ปลดล็อก | วาง/นำออกจากชั้นวาง | ย้อนกลับ | ผสาน | ไม่มีข้อมูล | ไม่ทราบ | ไม่ทราบ | ไม่มีข้อมูล |
| ตลาด GNU | [ในไฟล์ '.bazaar/bazaar.conf'] | ไม่มีข้อมูล | วาง/นำออกจากชั้นวาง | ยกเลิกข้อผูกมัด | ผสาน (ไม่ติดตาม) | แบ่งครึ่ง (ปลั๊กอินแบ่งครึ่ง) | ขาด-เฉพาะของพวกเขา / -เฉพาะของฉัน | grep (ปลั๊กอิน grep) | ไม่มีข้อมูล |
| บิตคีปเปอร์ | ไม่ทราบ | ไม่ทราบ | จอด/ยกเลิกการจอด | เลิกทำ | ไม่ทราบ | แบ่งครึ่ง | การเปลี่ยนแปลง -R/-L | เกรป | ไม่ทราบ |
| ซีวีเอสเอ็นที | [ในไฟล์ '.cvsrc'] | แก้ไข -x /unedit [ nb 73 ] | ไม่มีข้อมูล | ผู้ดูแลระบบ -o [ nb 74 ] | ใช่[ nb 75 ] | ระบุ[ nb 76 ] | ไม่มีข้อมูล | ไม่มีข้อมูล[ 61 ] | ไม่มีข้อมูล |
| ดาร์คส์ | ไม่มีข้อมูล | ไม่มีข้อมูล | ย้อนกลับ/ยกเลิกการย้อนกลับ | ไม่มีบันทึก | ใช่[ nb 77 ] | ทดสอบ -แบ่งครึ่ง | ดึง/ผลัก- ทดลองวิ่ง | ไม่มีข้อมูล | บันทึก |
| ฟอสซิล | ไม่มีข้อมูล | ไม่มีข้อมูล | stash pop/stash apply [ nb 78 ] | ผสาน - ย้อนกลับ | ผสาน -เลือกเฉพาะส่วนที่ต้องการ | แบ่งครึ่ง | ไม่มีข้อมูล | ค้นหา | ไม่มีข้อมูล |
| กิต | [ในไฟล์ '.gitconfig'] | ไม่มีข้อมูล | ซ่อน/ซ่อนป๊อป[ nb 79 ] | รีเซ็ต HEAD^ | เลือกเชอร์รี่ | แบ่งครึ่ง | เชอร์รี่ | เกรป | เพิ่ม -p |
| เปลี่ยนแปลงง่าย | [ในไฟล์ '.hgrc'] | ไม่มีข้อมูล | วาง/ถอดออกจากชั้นวาง (ส่วนขยายแบบรวม[ 62 ] ) | แถบ (ส่วนขยายแบบมัด[ 63 ] ) | กราฟต์ (แกน[ 64 ] ) หรือการปลูกถ่าย (ส่วนขยายแบบมัด[ 65 ] ) | แบ่งครึ่ง | ขาเข้า/ขาออก | เกรป | คอมมิต-อินเตอร์แอคทีฟ |
| โมโนโทน | [ใน monotonerc] | ไม่มีข้อมูล | ไม่มีข้อมูล | kill_rev_locally [ nb 80 ] | ดึง | แบ่งครึ่ง | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่ทราบ |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | ผ่านนายหน้า[ 66 ] | ล็อก/ปลดล็อก | วาง/นำออกจากชั้นวาง | ทำลายล้าง | อินทิก[ 67 ] | ไม่ทราบ | ทางแยกต่างระดับ | เกรป | ไม่ทราบ |
| การบ่อนทำลาย | ไม่มีข้อมูล | ล็อก/ปลดล็อก | วาง/นำออกจากชั้นวาง[ nb 81 ] | ไม่มีข้อมูล | svnmerge cherry-picking | เครื่องมือของบุคคลที่สาม[ nb 82 ] | สถานะ -u [ nb 83 ] | ไม่มีข้อมูล | ไม่มีข้อมูล |
| เซอร์ราวด์ เอสซีเอ็ม | ไม่มีข้อมูล | ชำระเงิน | ชั้นวาง | ย้อนกลับ | การเปลี่ยนแปลงซ้ำ | ไม่มีข้อมูล | ความแตกต่าง | ค้นหา | ไม่มีข้อมูล |
| ซอฟต์แวร์ | ชื่อเรียกแทนคำสั่ง | ล็อก/ปลดล็อก | วาง/นำออกจากชั้นวาง | ย้อนกลับ | การเลือกเชอร์รี่ | แบ่งครึ่ง | ขาเข้า/ขาออก | เกรป | บันทึก |
ส่วนติดต่อผู้ใช้
ตารางต่อไปนี้แสดงข้อมูลจำเพาะของอินเทอร์เฟซเว็บ, GUI และ IDE สำหรับระบบควบคุมเวอร์ชันที่สำคัญต่างๆ
คำอธิบายตาราง
- ซอฟต์แวร์ : ชื่อของแอปพลิเคชันที่กำลังอธิบายอยู่
- ส่วนต่อประสานเว็บ : อธิบายว่าแอปพลิเคชันซอฟต์แวร์มีส่วนต่อประสานเว็บหรือไม่ ส่วนต่อประสานเว็บอาจช่วยให้ซอฟต์แวร์ส่งข้อมูลการวินิจฉัยไปยังเว็บไซต์ หรืออาจอนุญาตให้ควบคุมแอปพลิเคชันซอฟต์แวร์จากระยะไกลได้
- GUI : GUI ย่อมาจาก Graphical User Interface (ส่วนต่อประสานผู้ใช้แบบกราฟิก) หากผลิตภัณฑ์ซอฟต์แวร์มี GUI ฟังก์ชันการทำงานต่างๆ จะสามารถเข้าถึงได้ผ่านหน้าต่างแอปพลิเคชัน แทนที่จะเข้าถึงฟังก์ชันการทำงานโดยการพิมพ์คำสั่งที่พรอมต์คำสั่ง เช่นเดียวกับอินเทอร์เฟซ DOS
- ปลั๊กอิน : ฟังก์ชันต่างๆ สามารถใช้งานได้ผ่านสภาพแวดล้อมการพัฒนาแบบบูรณาการ ฟังก์ชันขั้นต่ำควรมี ได้แก่ การแสดงสถานะการแก้ไขของไฟล์ และการเช็คอิน/เช็คเอาท์ไฟล์
| ซอฟต์แวร์ | อินเทอร์เฟซเว็บ | GUIแบบสแตนด์อะโลน | การผสานรวมและ/หรือปลั๊กอินสำหรับIDE |
|---|---|---|---|
| AccuRev SCM | ใช่ | ระบบปฏิบัติการ ที่รองรับ ได้แก่ Windows (รวมถึงการผสานรวมกับ Explorer) , Linux , Unix , macOSและBeOS | IntelliJ IDEA , Eclipse , Visual Studio |
| Azure DevOps | รวมถึง (SharePoint Server ที่ใช้สำหรับบริการเว็บ) | มี Windows ให้เลือกใช้; macOS และ Unix ก็มีให้เลือกใช้เช่นกัน | Visual Studio ไคลเอนต์ Java สำหรับ Eclipse IDE และ IntelliJ IDEA (มีให้ใช้งานใน Ultimate Edition) |
| ตลาด GNU | สามารถใช้เว็บเซิร์ฟเวอร์ธรรมดาได้ | Olive, bzr-gtk ( GTK +), Bazaar Explorer ( Qt ), QBzr ( Qt ), TortoiseBzr (Windows) | Eclipse (BzrEclipse, QBzrEclipse), Visual Studio (bzr-visualstudio), TextMate (TextMateBundle), Komodo IDE , Wing IDE |
| บิตคีปเปอร์ | รวมอยู่ด้วย | รวมอยู่ด้วย (bkd) | ไม่ทราบ |
| ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | รวมอยู่ด้วย | GUI ที่ใช้ Eclipse | อีคลิปส์ , เอ็มเอส วิชวล สตูดิโอ |
| IBM DevOps Code ClearCase | รวมถึง Clearcase Web Interface ด้วย | รุ่นเก่า: แอปพลิเคชันดั้งเดิมของ MS Windows, GUI ที่ใช้ Motif สำหรับ ระบบ ที่คล้าย Unix , ไคลเอนต์ TSOสำหรับz/ OS | Emacs , Eclipse (ซอฟต์แวร์เฉพาะของ IBM, Eclipse-CCase), Visual Studio (ซอฟต์แวร์เฉพาะของ IBM), KDevelop (ซอฟต์แวร์มาตรฐาน?), IntelliJ IDEA (ซอฟต์แวร์มาตรฐานใน Ultimate Edition) |
| โค้ด สหกรณ์ | ไม่จำเป็น เนื่องจากโปรเจ็กต์ทั้งหมดถูกจำลองไว้ในเครื่องแล้ว | วินโดวส์ | ไม่ทราบ |
| ซีวีเอส | cvsweb, ViewVCและอื่นๆ | TortoiseCVS (Windows Explorer), TkCVS ( Tcl / Tk ), WinCVS , macOS, GTK , Qt พร้อมใช้งาน | Eclipse (Team), KDevelop (มาตรฐาน), IntelliJ IDEA (มาตรฐานใน Community และ Ultimate Editions), Emacs (VC มาตรฐาน), Komodo IDE , BBEdit , Wing IDE |
| ซีวีเอสเอ็นที | cvsweb, ViewVCและอื่นๆ | รองรับ Windows, macOS, OS/400 , GTK และ Qt | ปลั๊กอินทั้งหมดที่รองรับ CVS รวมถึงปลั๊กอินเชิงพาณิชย์สำหรับ SCCI, Bugzilla และ Build |
| ดาร์คส์ | darcs.cgiรวมถึง; darcsweb, Trac | อยู่ระหว่างการพัฒนา; TortoiseDarcs (Windows Explorer), macOS (เวอร์ชันอัลฟ่า) | Eclipse (eclipsedarcs), Emacs (vc-darcs.el) |
| ขนาด (ซม.) | ใช่ | ระบบปฏิบัติการ Windows (รวมถึงการผสานรวมกับ Explorer) | Eclipse , Visual Studio , IntelliJ IDEA , XCode , Powerbuilder |
| ฟอสซิล | มีเว็บเซิร์ฟเวอร์ในตัว (โหมด UI/เซิร์ฟเวอร์) และสามารถเรียกใช้งานหลาย repository ผ่านโหมด CGI ได้ | เชื้อเพลิง-เอสซีเอ็ม | ไม่ทราบ |
| กิต | Gitweb, wit, cgit, GitLab , GitHub , gitorious , Trac , Kallithea , Bitbucket , Stash, Springloops , Bonobo Git Server, Gitea , Gogs | gitk ( wish ), git-gui ( Tcl / Tk ), tig, Gitbox ( macOS ), TortoiseGit , qgit, gitg ( GNOME / GTK ), (h)gct ( Qt ), git-cola (Qt), Git Extensions (Windows), GitEye, SmartGit/Hg, Tower, SourceTree (macOS/Windows), Sprout (macOS), GitX (macOS), GitUp (macOS), GitKraken , Sublime Merge | Aptana 3 Beta (Aptana Studio 3 พร้อมการผสานรวม Git); Atom ; Eclipse (JGit/EGit); Helix TeamHub ; Netbeans (NbGit); KDevelop ; Visual Studio (ส่วนขยาย Git); Emacs (ส่วนขยายสำหรับ VC มาตรฐาน, Magit ); SAP Web IDE; TextMate (Git TextMate Bundle); Vim (ปลั๊กอิน VCSCommand และปลั๊กอิน fugitive); IntelliJ IDEA >8.1 (มาตรฐานใน Community และ Ultimate Editions); Komodo IDE ; Anjuta ; XCode , Wing IDE ; PyCharm |
| สถาปัตยกรรม GNU | อาร์ชซูม | ArchWay ( GTK 2), TlaLog | Emacs (VC มาตรฐาน) |
| ไอซี แมเนจ | รวมอยู่ด้วย | วินโดวส์, ลินุกซ์, ยูนิกซ์, มอสซาเรลล่า | Emacs, Cadence Design Framework, Synopsys Custom Designer |
| เอ็มเคเอส อินทิกอรี่ | ใช่ | วินโดวส์, ลินุกซ์, ยูนิกซ์, โซลาริส, เอไอเอ็กซ์, | Eclipse, Microsoft Visual Studio, Perforce และอื่นๆ นอกจากนี้ยังให้การสนับสนุนอินเทอร์เฟซ Source Code Control (SCC) มาตรฐานอุตสาหกรรม[ 68 ] |
| เปลี่ยนแปลงง่าย | รวมถึง[ nb 84 ] Trac , Kallithea | Hgk ( Tcl / Tk ), (h)gct (Qt), TortoiseHg (Windows Explorer, Nautilus), MacHg, MacMercurial, Murky, SourceTree (Windows/macOS), TortoiseHg, SmartGit/Hg | IntelliJ IDEA (ปลั๊กอิน hg4idea), Eclipse (Mercurial Eclipse), NetBeans, Visual Studio 2008, Emacs , Vim (ปลั๊กอิน VCSCommand), Komodo IDE , Eric Python IDE , Wing IDE |
| โมโนโทน | ViewMTN, TracMonotone, | Monotone-Viz ( GTK +), Guitone ( Qt ), Monotone Browser ( GTK +, Perl ) | ไม่ทราบ |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | รวมถึง P4Web และ P4FTP | วินโดวส์, ลินุกซ์, แมค, ระบบปฏิบัติการ macOS | Eclipse , Visual Studio , Matlab ; เอ็นจิ้นเกม: Unity , Unreal , Amazon Lumberyard ; กราฟิก: Autodesk Maya , 3ds max , Adobe PS |
| คอนเสิร์ตทีมราชันย์ | ใช่ | GUI ที่ใช้ Eclipse | การทำงานร่วมกับ Eclipse; การทำงานร่วมกับ MS Visual Studio (แบบจำกัด) |
| ทีมสตาร์ | รวมอยู่ด้วย | Windows, Java , Eclipse, Visual Studio, การผสานรวม BDS2006 และ Java command-line | IntelliJ IDEA (มีให้ใน Ultimate Edition), Visual Studio, JBuilder, Eclipse |
| การบ่อนทำลาย | รวมโมดูล Apache 2, WebSVN, ViewSVN, ViewVC , Trac , SharpForge , Sventon และSpringloops | Java, KDESVN, macOS [ 69 ] (รวมถึงการผสานรวม Finder), Nautilus, Qt, RabbitVCS, RapidSVN, SourceTree (macOS), TortoiseSVN (Windows Explorer) | Anjuta , BBEdit , Eclipse (Subclipse, Subversive), Emacs (VC มาตรฐาน), IntelliJ IDEA (มาตรฐานใน Community และ Ultimate Editions), KDevelop (มาตรฐาน), Komodo IDE , MonoDevelop (มาตรฐาน), Netbeans, RabbitVCS (สำหรับ GEdit), TextMate (ปลั๊กอิน SVNMate), Visual Studio (AnkhSVN, VisualSVN ), Wing IDE |
| เซอร์ราวด์ เอสซีเอ็ม | ใช่ | วินโดวส์, มอสซาเรธ, ลินุกซ์ | Eclipse , IntelliJ IDEA , JDeveloper , NetBeans , Visual Studio , WebStorm |
| การทำงานร่วมกัน | ผ่านอินเทอร์เฟซการเปลี่ยนแปลง Telelogic | ระบบปฏิบัติการ Windows (รวมถึงการทำงานร่วมกับ Explorer), Linux, Unix | Eclipse (ซอฟต์แวร์กรรมสิทธิ์ของ Telelogic), Visual Studio (ซอฟต์แวร์กรรมสิทธิ์ของ Telelogic), IntelliJ IDEA (ซอฟต์แวร์กรรมสิทธิ์ของ Telelogic) |
| ห้องนิรภัย | รวมอยู่ด้วย | วินโดวส์, ระบบปฏิบัติการคล้ายยูนิกส์, ระบบปฏิบัติการ macOS | Visual Studio 2003 ขึ้นไป, Eclipse 3.2 ขึ้นไป |
| เวสต้า | เวสต้าเว็บ | เลขที่ | เลขที่ |
| Visual SourceSafe | ไม่มีการรวมไว้; SSWI, VSS Remoting | รวมถึง Windows; Linux, macOS และ Solaris โดยใช้ SourceOffSite; และ Java VM ใดๆ ก็ได้โดยใช้Sourceanywhereสำหรับ VSS | Visual Studio, IntelliJ IDEA (มีให้ใช้งานใน Ultimate Edition) |
| ซอฟต์แวร์ | อินเทอร์เฟซเว็บ | GUIแบบสแตนด์อะโลน | การผสานรวมและ/หรือปลั๊กอินสำหรับIDE |
ประวัติและการรับเลี้ยงบุตรบุญธรรม
ตารางต่อไปนี้แสดงข้อมูลพื้นฐานทางประวัติศาสตร์เกี่ยวกับระบบควบคุมเวอร์ชันต่างๆ:
คำอธิบายตาราง
- ซอฟต์แวร์ : ชื่อของแอปพลิเคชันที่กำลังอธิบายอยู่
- ประวัติ : อธิบายโดยย่อถึงที่มาและการพัฒนาของซอฟต์แวร์
- ผู้ใช้งานปัจจุบันที่น่าสนใจ : คือรายชื่อโครงการที่มีชื่อเสียงซึ่งใช้ซอฟต์แวร์นี้เป็น ระบบควบคุมเวอร์ชัน หลักโดยไม่รวมตัวซอฟต์แวร์เอง และจะมีลิงก์ไปยังรายชื่อทั้งหมดหากมี
| ซอฟต์แวร์ | ประวัติศาสตร์ | ผู้ใช้งานปัจจุบันที่น่าสนใจ |
|---|---|---|
| AccuRev SCM | เปิดตัวสู่สาธารณะครั้งแรกในปี 2545 | |
| Azure DevOps Server | เปิดตัวสู่สาธารณะครั้งแรกในเดือนมีนาคม พ.ศ. 2549 ในชื่อ Visual Studio Team System เปลี่ยนชื่อเป็น Team Foundation Server ในปี พ.ศ. 2553 และ Azure DevOps Server ในปี พ.ศ. 2562 | ไมโครซอฟต์ |
| บริการ Azure DevOps | เปิดตัวสู่สาธารณะครั้งแรกในปี 2012 ในชื่อ Team Foundation Service เปลี่ยนชื่อเป็น Visual Studio Online ในปี 2013, Visual Studio Team Services ในปี 2015 และ Azure DevOps ในปี 2018 | ไมโครซอฟต์ |
| ตลาด GNU | เผยแพร่ครั้งแรกเมื่อวันที่ 26 มีนาคม 2548 มีความเกี่ยวข้องกับbaz อย่างหลวมๆ สนับสนุนโดยCanonical Ltd. | |
| บิตคีปเปอร์ | เปิดตัวครั้งแรกเมื่อวันที่ 4 พฤษภาคม 2543 ได้รับอิทธิพลมาจากSun WorkShop TeamWare | |
| ผู้จัดการการเปลี่ยนแปลงซอฟต์แวร์ CA | บริษัทก่อตั้งขึ้นครั้งแรกในปี 1977 โดยผลิตภัณฑ์ CA SCM (ซึ่งในขณะนั้นเรียกว่า CCC/Harvest) เปิดตัวครั้งแรกในปี 1995 | |
| IBM DevOps Code ClearCase | พัฒนาขึ้นครั้งแรกในปี 1990 โดย Atria Software โดยอิงตามแนวคิดที่Apollo Computer พัฒนาขึ้น ใน DSEE ในช่วงทศวรรษ 1980 เวอร์ชันล่าสุดคือ 9.0.0 ซึ่งวางจำหน่ายในเดือนมีนาคม 2016 | |
| โค้ด สหกรณ์ | VCS แบบกระจายตัวแรกที่สาธิตในปี 1997 [ 70 ]วางจำหน่ายในเวลาไม่นานหลังจากนั้น | |
| ซีวีเอส | เผยแพร่สู่สาธารณะครั้งแรกเมื่อวันที่ 3 กรกฎาคม 1986 โดยอิงจากRCS | เน็ตบีเอสดี , โอเพนบีเอสดี |
| ซีวีเอสเอ็นที | เปิดตัวสู่สาธารณะครั้งแรกในปี 1998 โดยอิงจากCVSเริ่มต้นโดย นักพัฒนา CVSโดยมีเป้าหมายเพื่อเพิ่มการสนับสนุนวิธีการและกระบวนการพัฒนาที่หลากหลายยิ่งขึ้น | |
| ดาร์คส์ | ประกาศครั้งแรกเมื่อวันที่ 9 เมษายน 2546 | |
| ขนาด (ซม.) | โปรแกรมนี้ได้รับการพัฒนาโดย SQL Software ภายใต้ชื่อ "PCMS Dimensions" ในช่วงปลายทศวรรษ 1980 (PCMS ย่อมาจาก Product Configuration Management) ต่อมาได้มีการควบรวมกิจการและวางจำหน่ายในชื่อต่างๆ ได้แก่ "PVCS Dimensions" (ทศวรรษ 1990, Intersolv), "Dimensions" (ต้นทศวรรษ 2000, Merant), "ChangeMan Dimensions" (ปี 2004, Serena Software ) และสุดท้ายคือ " Dimensions CM " (ตั้งแต่ปี 2007, Serena Software ) | |
| ฟอสซิล | Fossil และ SQLite เริ่มใช้ Fossil ตั้งแต่วันที่ 21 กรกฎาคม 2550 | |
| กิต | เริ่มต้นโดยLinus Torvaldsในเดือนเมษายน พ.ศ. 2548 หลังจากเกิดข้อโต้แย้ง เกี่ยว กับ BitKeeper [ 71 ] | เคอร์เนล Linux , Android , OpenJDK , Bugzilla , DragonFly BSD , FreeBSD , gcc , [ 72 ] GNOME , GNU Emacs , GnuPG , [ 73 ] GRUB2 , KDE , MySQL , Perl 5 , [ 74 ] PostgreSQL , Python , [ 75 ] X.Org , Cairo , Qt Development Frameworks , Samba , OpenEmbedded , Ruby , Ruby on Rails , Wine , Fluxbox , Openbox , Compiz Fusion , XCB , Xen , ELinks , XMMS2, e2fsprogs , GNU Core Utilities , DokuWiki , Drupal , LibreOffice , MediaWiki , [ 76 ] Mono , ASP.NET MVC , ADO.NET Entity Framework , NuGet , jQueryและอื่นๆ อีกมากมาย ของปลั๊กอินต่างๆ เช่นOpenCV , Twitter , Netflix , LinkedIn , Wireshark , Djangoรวมถึงบริษัทต่างๆ เช่นEclipse Foundation , Ericsson , Microsoft , [ 77 ] Huawei , Apple , Amazon , LG |
| สถาปัตยกรรม GNU | โครงการ นี้เริ่มต้นโดยทอม ลอร์ดในปี 2001 และต่อมาได้กลายเป็นส่วนหนึ่งของ โครงการ GNUลอร์ดลาออกจากตำแหน่งผู้ดูแลในเดือนสิงหาคม 2005 | |
| ไอซี แมเนจ | พัฒนาโดย IC Manage, Inc. ซึ่งก่อตั้งขึ้นในปี 2546 โดย Shiv Sikand และ Dean Drako | |
| ความสมบูรณ์ของ PTC | เดิมทีพัฒนาโดย MKS Software ซื้อกิจการโดย PTC ในเดือนพฤษภาคม 2554 [ 78 ] | |
| เปลี่ยนแปลงง่าย | เริ่มต้นเมื่อวันที่ 6 เมษายน พ.ศ. 2548 โดย Matt Mackall หลังจากเกิดข้อโต้แย้ง เกี่ยว กับ BitKeeper [ 71 ]เผยแพร่ครั้งแรกเมื่อวันที่ 19 เมษายน พ.ศ. 2548 | ไลบรารีความแม่นยำหลายค่าของ GNU , GNU Octave , Pidgin , XEmacs [ 79 ] |
| โมโนโทน | วางจำหน่ายครั้งแรกในเดือนเมษายน พ.ศ. 2546 | |
| เพอร์ฟอร์ซ เฮลิกซ์ คอร์ | พัฒนาโดยบริษัท Perforce Software, Inc. ซึ่งก่อตั้งขึ้นในปี 1995 โดย Christopher Seiwald | |
| คอนเสิร์ตทีมราชันย์ | เวอร์ชัน 1.0 เปิดตัวในเดือนมิถุนายน พ.ศ. 2551 | |
| ระบบควบคุมการแก้ไข | กรกฎาคม 2528 | |
| ระบบควบคุมซอร์สโค้ด | เริ่มต้นโดยMarc Rochkindในปี 1972 (ไฟล์ประวัติแบบไบนารี เขียนด้วย Snobol บน IBM-370 [ 80 ] SCCSv4 พร้อมไฟล์ประวัติแบบข้อความได้รับการเผยแพร่เมื่อวันที่ 18 กุมภาพันธ์ 1977 [ 81 ]รูปแบบไฟล์ประวัติเดียวกันนี้ยังคงใช้ใน SCCS 5.0 [ 82 ] | |
| ทีมสตาร์ | เวอร์ชัน 1.0 พ.ศ. 2538; [ 83 ]พัฒนาโดยซอฟต์แวร์ StarBase ซึ่งถูกซื้อกิจการโดย Borland (ซึ่งถูกซื้อกิจการโดย Micro Focus) | |
| Apache Subversion | เริ่มต้นในปี 2000 โดย นักพัฒนา ของ CVSโดยมีเป้าหมายเพื่อทดแทน CVS | |
| การทำงานร่วมกัน | ผลิตภัณฑ์นี้ได้รับการพัฒนาขึ้นครั้งแรกในปี 1988 โดย Caseware ในชื่อ AmplifyControl ต่อมาบริษัทได้เปลี่ยนชื่อเป็น Continuus ในปี 1994 และผลิตภัณฑ์นี้เป็นที่รู้จักกันดีในชื่อ Continuus/CM Continuus ถูกซื้อกิจการโดย Telelogic ในปี 1999 หลังจากที่เข้าสู่ตลาดหลักทรัพย์ได้ไม่นาน และผลิตภัณฑ์นี้ได้เปลี่ยนชื่อเป็น Telelogic Synergy IBM ได้เข้าซื้อกิจการ Telelogic ในปี 2008 เพื่อนำไปรวมเข้ากับชุดเครื่องมือ Rational ของตน ปัจจุบันผลิตภัณฑ์นี้รู้จักกันในชื่อ IBM Rational Synergy | |
| ห้องนิรภัย | เปิดตัวสู่สาธารณะครั้งแรกในเดือนกุมภาพันธ์ พ.ศ. 2546 | ไม่ทราบ |
| เวสต้า | เผยแพร่สู่สาธารณะครั้งแรกภายใต้ลิขสิทธิ์ LGPL ในปี 2544 | |
| Visual SourceSafe | เดิมทีโปรแกรมนี้ถูกสร้างขึ้นโดยบริษัทชื่อ One Tree Software เวอร์ชัน 3.1 ต่อมาบริษัทนี้ถูกซื้อกิจการโดย Microsoft ซึ่งได้ออกเวอร์ชัน 4.0 ของ VSS ในช่วงประมาณปี 1995 | |
| ซอฟต์แวร์ | ประวัติศาสตร์ | ผู้ใช้งานปัจจุบันที่น่าสนใจ |
ดูเพิ่มเติม
หมายเหตุ
- ใน ClearCase สามารถตั้งค่าทริกเกอร์เพื่ออนุญาตให้ใช้โมเดลการล็อกได้ และหลายๆ ไซต์ก็ทำเช่นนี้ อย่างไรก็ตาม การพัฒนา ClearCase มักเกิดขึ้นบนสาขาแบบส่วนตัว ซึ่งนักพัฒนาแต่ละคนจะได้รับสาขาของตนเอง ดังนั้นโมเดลการทำงานพร้อมกันแบบล็อกเทียบกับการรวมจึงไม่สำคัญมากนัก โค้ดจะถูกรวมกลับไปยังสาขาหลักเมื่อนักพัฒนาพร้อมที่จะส่งมอบโค้ดให้กับโครงการ
- ^ RTC ไม่ใช่ระบบควบคุมเวอร์ชันแบบกระจาย แต่มีคุณสมบัติแบบกระจายบางอย่างที่สามารถกำหนดค่าได้
- ^มีการแยกสาขาต่างๆ ของซอร์สโค้ด Unix ดั้งเดิมอยู่หลายเวอร์ชัน แต่มีเพียงเวอร์ชันเดียวเท่านั้นที่ยังคงได้รับการดูแลรักษาอย่างต่อเนื่อง
- ^แม้ว่าผู้ใช้หลายคนจะสามารถแก้ไขไฟล์เวอร์ชันเดียวกันได้พร้อมกัน แต่จะมีเพียงผู้ใช้คนเดียวเท่านั้นที่สามารถบันทึกการเปลี่ยนแปลงกลับไปได้
- ^แม้ว่าบางเวอร์ชันของ SCCS จะเป็นซอฟต์แวร์โอเพนซอร์ส แต่บางเวอร์ชันก็ยังคงเป็นซอฟต์แวร์ปิดที่เป็นส่วนหนึ่งของระบบปฏิบัติการ Unix เชิงพาณิชย์
- ^ใน Subversion แอตทริบิวต์ไฟล์ช่วยให้สามารถใช้โมเดลการล็อกแบบต่อไฟล์ได้ แอตทริบิวต์ไฟล์นี้สามารถตั้งค่าได้โดยอัตโนมัติโดยใช้การแสดงนิพจน์ตัวแทนชื่อไฟล์
- โมดูลที่สำคัญของ Bazaar เขียนด้วยภาษา Pyrex และจะถูกแปลงเป็นภาษา C โดยอัตโนมัติ ยกเว้น โมดูล การเรียงลำดับแบบอดทนซึ่งใช้ในการแก้ไขการรวมโค้ด โดยโมดูลนี้เขียนด้วยภาษา C โดยตรง
- ^ชุดข้อมูล Bazaar คือส่วนต่างสรุปที่มีข้อมูลเพิ่มเติมเพียงพอที่จะรักษาประวัติการเปลี่ยนแปลงไว้
- ^สแนปช็อตพร้อมไฟล์ไบนารี มีการหารือเกี่ยวกับการใช้ชุดการเปลี่ยนแปลงแบบไบนารีในอนาคต (darcs 3)
- ^ 4 MB ซึ่งเป็นไฟล์ sqlite3.c
- ^หมายเลขการแก้ไขของ Mercurial เป็นหมายเลขเฉพาะของแต่ละ repository ซึ่งอาจแตกต่างกันไปในแต่ละ repository ขึ้นอยู่กับลำดับการรวมข้อมูลที่ดำเนินการ
- ^การแก้ไขของ Monotone แสดงถึงชุดการเปลี่ยนแปลง และไฟล์ Manifest แสดงถึงภาพรวม (snapshot) โดยแต่ละการแก้ไขจะเชื่อมโยงกับไฟล์ Manifest บางไฟล์ แต่ไฟล์ Manifest เป็นโครงสร้างแบบเก่า ไม่ได้เก็บไว้ในฐานข้อมูลอีกต่อไป และจะถูกสร้างขึ้นใหม่เมื่อจำเป็น งานที่แท้จริงในปัจจุบันเกิดขึ้นใน Roster ซึ่งเป็นโครงสร้างแบบผสมผสานระหว่างภาพรวมและชุดการเปลี่ยนแปลง
- ^ฝาแฝดชั่วร้ายพบได้ทั่วไปฝาแฝดชั่วร้ายใน SCM ไม่ใช่ฮอลลีวูด เก็บถาวรเมื่อ 2013-10-16 ที่ Wayback Machine
- ^สามารถเปิดใช้งานการคอมมิตแบบอะตอมิกสำหรับการเช็คอินแต่ละรายการได้ (หมายเหตุ: ClearCase 7.1.1 เวอร์ชันนี้หมายถึงบันทึก การเปลี่ยนแปลง )
- ^ดูคำถามที่พบบ่อย
- ^แพทช์แต่ละตัวของ darcs จะมีตัวระบุที่ไม่ซ้ำกัน ทำให้ไม่สามารถรวมแพทช์เดียวกันสองครั้งในที่เก็บข้อมูลได้ (โดยไม่แก้ไขประวัติโดยใช้คำสั่ง "unsafe")
- ^แม้ว่าจะจัดเก็บ (และแสดงผลตามค่าเริ่มต้น) ชื่อไฟล์แบบ 8 บิตก็ตาม ดูคำถามที่พบบ่อย
- ^การใช้แอตทริบิวต์การแก้ไขรายการ (ตัวอย่าง "การทำงานกับรายการ" ซึ่งครอบคลุมแอตทริบิวต์ที่ผู้ใช้กำหนดเองเก็บถาวรเมื่อ 2016-03-04 ที่ Wayback Machine )
- ^ในแง่ที่ว่าข้อความและส่วนติดต่อผู้ใช้แบบกราฟิกมีการแปลเป็นภาษาอังกฤษเท่านั้น แม้ว่าซอฟต์แวร์จะได้รับการรับรองว่าทำงานได้ดีบนระบบปฏิบัติการหลายภาษา
- ^ควบคุมโดยการตั้งค่า 'crnl-glob' ( [1] )
- ^ Git ไม่ได้ติดตามการเปลี่ยนชื่อไฟล์โดยตรง เนื่องจากโดยหลักการแล้วมันไม่ได้ติดตามไฟล์แต่ละไฟล์ การเปลี่ยนชื่อและการแยกไฟล์ต้นฉบับจะถูกตรวจพบในภายหลัง หากเนื้อหาของไฟล์ไม่ได้เปลี่ยนแปลงอย่างมาก
- ^ตั้งแต่ git-1.7.9 (ดูบันทึกการเผยแพร่ลิงก์ที่เลิกใช้แล้วถูกเก็บถาวรเมื่อ 2013-04-15 ที่ archive.today ) เวอร์ชันเก่ากว่าจะไม่ลงนามในคอมมิต แต่จะลงนามเฉพาะแท็กเท่านั้น (ดูตัวเลือก -s ในหน้าคู่มือ git-tag(1) )
- ^รองรับชื่อไฟล์ UTF-8 ตั้งแต่เวอร์ชัน 1.7.10 เป็นต้นไป (ดูบันทึกการเผยแพร่ของ MSysGit )
- ^ Git มีปัญหาบางอย่างกับที่เก็บข้อมูลขนาดใหญ่มาก โปรดดูส่วน "การสนับสนุนไฟล์ขนาดใหญ่ที่ดีขึ้น"และส่วน "การออกแบบรูปแบบดัชนีที่เร็วขึ้น"ใน SoC 2012 Ideas
- ^ชุดการเปลี่ยนแปลงที่เปิดใช้งานความสมบูรณ์จะให้เวิร์กโฟลว์ที่สมบูรณ์และลายเซ็นดิจิทัลที่สอดคล้องกับ 21 CFR Part 11 สำหรับรายการที่ควบคุมชุดการเปลี่ยนแปลงนั้น
- ^ในเวอร์ชัน SP5 ปี 2009 ได้เพิ่มฟีเจอร์สำหรับการรวมเส้นทางการพัฒนาของเด็ก
- ^ Mercurial มีระบบรองรับหลายภาษาณ ปี 2017
- ^การสนับสนุนขึ้นอยู่กับระบบปฏิบัติการโฮสต์และได้รับการสนับสนุนอย่างดีในระบบ Unix แต่ไม่ใช่ระบบปฏิบัติการ Windows เนื่องจากขาดการสนับสนุนจากโฮสต์ ดู [2]
- ^สามารถทำได้ผ่าน hooks ระดับผู้ใช้
- ^ Perforce จะควบคุมเวอร์ชันของลิงก์สัญลักษณ์เอง แต่จะไม่รู้จักมุมมองที่ควบคุมเวอร์ชันของตัวเอง (โครงสร้างไฟล์ในเครื่อง) หากคุณเข้าถึงมุมมองเหล่านั้นผ่านลิงก์สัญลักษณ์
- ^ผ่านองค์ประกอบพฤติกรรมกระบวนการ: ที่ปรึกษาการดำเนินงานและผู้เข้าร่วมการดำเนินงาน http://jazz.net/library/article/292
- ^แม้ว่าซอร์สโค้ดของ SCCS จะถูกเขียนขึ้นเพื่อรองรับการใช้งานหลายภาษา แต่ข้อความที่มีอยู่มีเฉพาะภาษาอังกฤษเท่านั้น
- ^ StarTeam รองรับการคอมมิตแบบอะตอมิกตั้งแต่เวอร์ชัน 2006
- ^ Subversion สามารถย้ายไฟล์และรักษาประวัติการย้ายไว้ได้ก็ต่อเมื่อปลายทางของการย้ายอยู่ในที่เก็บ Subversion เดียวกันกับแหล่งที่มาเท่านั้น การย้ายข้ามที่เก็บต้องใช้เครื่องมือของบุคคลที่สาม
- ^ตั้งแต่ SVN เวอร์ชัน 1.8 เป็นต้นมา Subversion รองรับการติดตามการย้ายไฟล์ที่ดีขึ้นในฝั่งไคลเอ็นต์ แต่ยังไม่รองรับในฝั่งเซิร์ฟเวอร์
- ^ "การลงนามการเปลี่ยนแปลง"รายชื่อผู้รับจดหมายของ Apache Subversion เรียกดูเมื่อ2016-08-05
- ^ใหม่ใน SVN 1.5 < http://subversion.apache.org/docs/release-notes/1.5.html#merge-tracking > เครื่องมือแยกต่างหาก "svnmerge" < [3] > ให้การติดตามการรวมสำหรับเวอร์ชันเก่ากว่า
- ^ใน Subversion แท็กเป็นกรณีพิเศษของแนวคิด "สำเนาราคาถูก" ทั่วไปของ Subversion ตามธรรมเนียมแล้ว แท็กคือสำเนาที่อยู่ในไดเร็กทอรีชื่อ "tags" ด้วยเหตุนี้ แม้แต่แท็กก็มีการกำหนดเวอร์ชัน ดู ข้อมูลเพิ่มเติมได้ ที่ http://svnbook.red-bean.com/nightly/en/svn.branchmerge.tags.htmlเหตุผลที่ตารางนี้รองรับเพียงบางส่วนก็เพราะการจำลองแท็กของ Subversion ในลักษณะนี้ไม่ตรงตามข้อกำหนดที่ว่าชื่อแท็กสามารถใช้แทนตัวระบุการแก้ไขใดๆ ก็ได้ในกรณีที่ผู้ใช้ต้องป้อนตัวระบุ คอลัมน์นี้จะไม่มีความหมายหากคำจำกัดความถูกขยายให้ครอบคลุมวิธีการของ Subversion เนื่องจากระบบควบคุมเวอร์ชันทุกระบบรองรับการสร้างสาขาและจะรองรับแท็กด้วยเช่นกัน
- ^ในเวอร์ชันที่วางจำหน่ายในเอเชีย (v6.6a ถึง v7.1a) และตั้งแต่เวอร์ชัน 7.2 เป็นต้นไปโดยทั่วไป
- ^ประวัติการเปลี่ยนแปลงเวอร์ชันจะถูกลบออกเมื่อเปลี่ยนชื่อ และจะไม่มีการอ้างอิงถึงชื่อเดิม
- ^ยังไม่ได้ดำเนินการ
- ^ไม่สามารถปิดใช้งานได้ในมุมมองแบบไดนามิก
- ^ใช้ชื่อแทนของไฟล์ CVSROOT/modules
- ^ CVS จะบันทึกบิตที่สามารถเรียกใช้งานได้เมื่อเพิ่มไฟล์ แต่ไม่อนุญาตให้เปลี่ยนแปลงในภายหลัง
- ^นี่คือคุณสมบัติของ GUI ที่รองรับโดย TortoiseCVS และ WinCVS ซึ่งทั้งสองโปรแกรมนี้มี/ใช้ CVSNT
- ^เหมือนกับ CVS แต่เพิ่มเติมความสามารถในการมีคลังเก็บข้อมูลที่จำลองแบบได้ รวมถึงคลังเก็บข้อมูล 'เงา' ด้วย
- ^ใช้ชื่อโมดูล/ไดเร็กทอรี หรือชื่อแทนที่สร้างขึ้นโดยใช้ไฟล์การจัดการ CVSROOT/modules หรือ CVSROOT/modules2
- ^ CVSNT รองรับฟังก์ชันนี้ได้ก็ต่อเมื่อเครื่องมือ make/build ที่ใช้รองรับฟังก์ชันนี้ด้วย
- ^ Darcs สามารถทำการตรวจสอบแบบกระจัดกระจาย (sparse checkout) จากจุดตรวจสอบ (checkpoint) ที่ระบุไว้อย่างชัดเจนใน repository darcs-1 ได้ แต่ไม่สามารถทำจาก repository darcs-2 ได้
- ^ Darcs สามารถตรวจจับสคริปต์ #! โดยอัตโนมัติและทำให้สคริปต์เหล่านั้นสามารถเรียกใช้งานได้เมื่อทำการชำระเงิน
- ^การใช้ฟังก์ชันโครงการย่อย (เอกสารประกอบ | คู่มือผู้ใช้ | การเชื่อมโยงโครงการหรือสตรีมกับวัตถุอื่นๆ )
- ^สามารถซ้อนการชำระเงินได้โดยใช้คำสั่ง "fossil open –nested"
- ^คำถามที่พบบ่อยของ Gitระบุว่าการขยายคีย์เวิร์ดไม่ใช่สิ่งที่ดี
- ^เพิ่ม -iและเพิ่ม -pดูหน้าคู่มือ git-add(1)
- ^คำถามที่พบบ่อยของ Gitอธิบายว่าเหตุใดการเก็บรักษาเวลาการแก้ไขจึงถือว่าเป็นอันตราย
- ^สามารถกำหนดค่าได้บนเซิร์ฟเวอร์ในรูปแบบตัวเลือกโครงการ และบนไคลเอนต์ในรูปแบบตัวเลือกผู้ใช้
- ^โดยใช้เครื่องมือของบุคคลที่สาม เช่น Tortoise SVN
- ^ SVN ไม่สามารถรักษาเวลาการแก้ไขไฟล์ได้ ตามคำขอของไคลเอ็นต์ ระบบสามารถกู้คืนเวลาเช็คอินเป็นเวลาแก้ไขล่าสุดได้ โดยค่าเริ่มต้นจะปิดใช้งานอยู่
- ^ประเภท MIME ของไฟล์จะต้องถูกตรวจจับว่าเป็นประเภท MIME ที่ "มนุษย์อ่านได้" แม้ว่าเครื่องมือผสานจะสามารถทำงานกับไฟล์ที่ไม่สามารถอ่านได้โดยมนุษย์ก็ตาม
- ^ สาขาแบบแยกเดี่ยวเก็บถาวรจากต้นฉบับเมื่อ 2016-03-04 เรียกดูเมื่อ 2014-11-06
- ^ คลังข้อมูลที่ใช้ร่วมกันเก็บถาวรจากต้นฉบับเมื่อ 2016-03-04 เรียกดูเมื่อ 2014-11-06
- ^ สาขาแบบแยกเดี่ยวเก็บถาวรจากต้นฉบับเมื่อ 2016-03-04 เรียกดูเมื่อ 2014-11-06
- ^ Heavyweight Checkout และ Lightweight Checkout , เก็บถาวรจากต้นฉบับเมื่อ 2016-06-30 , เรียกดูเมื่อ 2014-11-06
- ^ปลั๊กอิน rebase
- ^ darcs ไม่มีสาขาที่มีชื่อ ไม่ว่าจะเป็นสาขาในเครื่องหรือสาขาอื่น การสร้างสาขาจะจัดการผ่านการโคลนที่เก็บข้อมูลเท่านั้น
- ^ darcs sendจะเตรียมชุดแพทช์ โดยค่าเริ่มต้นจะส่งทางอีเมล แต่สามารถส่งเป็นไฟล์แทนได้
- ^การคัดลอกจะถูกตรวจพบหลังจากนั้น เช่นเดียวกับการเปลี่ยนชื่อ
- ^บุ๊กมาร์กของ Mercurialคล้ายกับสาขาในเครื่อง
- ^ SCCS มีการล็อกโดยปริยาย ซึ่งจะถูกนำมาใช้เมื่อทำการเช็คเอาท์ผ่านทาง
editและจะถูกลบออกเมื่อสร้างเดลต้า - ^นำไฟล์ (ที่จะกลายเป็นไฟล์ถาวร) ไปวางไว้ในไดเร็กทอรีที่ไม่สามารถเปลี่ยนแปลงได้โดยใช้วิธีการใดๆ ก็ได้ ก่อนที่จะทำการ vcheckin
- ^ mv(1) หรือ link(2) ไฟล์ที่เปลี่ยนแปลงไม่ได้จากไดเร็กทอรีที่เปลี่ยนแปลงไม่ได้ต้นทางไปยังไดเร็กทอรีที่เปลี่ยนแปลงไม่ได้ปลายทางก่อน vcheckin
- ^ใช้วิธีใดวิธีหนึ่งในการคัดลอกไฟล์ที่ไม่สามารถเปลี่ยนแปลงได้จากไดเร็กทอรีต้นทางไปยังไดเร็กทอรีปลายทางก่อนที่จะทำการ vcheckin
- ^นอกจากนี้ ยังสามารถเปิดใช้งานการตั้งค่าส่วนกลางนี้ได้ในแผงควบคุมเซิร์ฟเวอร์ที่เก็บข้อมูลหรือในไฟล์การกำหนดค่า
- ^ต้องใช้สิทธิ์ผู้ดูแลระบบ คุณสามารถ 'ย้อนกลับ' การเปลี่ยนแปลงได้โดยใช้ '
cvs update -e -j @commitid -j "@<commitid"' แต่หลักฐานการเปลี่ยนแปลงและการย้อนกลับจะยังคงอยู่ในประวัติ - ใช่แล้ว - ใช้ TortoiseCVS หรือ WinCVS เพื่อบันทึกการเปลี่ยนแปลงไปยังปลายทาง และเลือกไฟล์เฉพาะที่ต้องการเก็บไว้
- ^คำสั่ง bisect ก็มีให้ใช้งานสำหรับ cvs เช่นกัน ซึ่งน่าจะใช้งานได้กับ CVSNT
- ^ darcs ทำงานกับแพตช์ ไม่ใช่เวอร์ชัน การเลือกแพตช์ (cherrypicking) คือการดึงแพตช์ที่กำหนดจากที่เก็บหนึ่งไปยังอีกที่เก็บหนึ่ง ตราบใดที่ตรงตามข้อกำหนดของ dependency
- ^ Fossil Stash รองรับชั้นวางหลายชั้นพร้อมช่องแสดงความคิดเห็น
- ^ git stash เป็นชั้นวางแบบหลายระดับ สามารถจัดเก็บกลุ่มการเปลี่ยนแปลงหลายกลุ่มพร้อมกันได้
- ^ใช้ได้เฉพาะกับที่เก็บข้อมูลในเครื่องและเฉพาะกับการแก้ไขที่ไม่มีการแก้ไขย่อยเท่านั้น คำสั่ง disapprove อาจเป็นอีกทางเลือกหนึ่ง
- ^ทดลองใช้ใน SVN 1.10 (บันทึกการเผยแพร่ )
- ^เครื่องมือ SVN Bisect svn-bisect
- ^คำสั่ง `svn status` แสดงความแตกต่างระหว่างสำเนาที่ใช้งานอยู่และที่เก็บข้อมูล ไม่ใช่ความแตกต่างระหว่างที่เก็บข้อมูลสองแห่ง
- ^ใช้ hgweb สำหรับการเข้าถึงคลังข้อมูลเดียว และ hgwebdir สำหรับการเข้าถึงคลังข้อมูลหลายแห่งจากที่อยู่ HTTP เดียว
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเปรียบเทียบซอฟต์แวร์ควบคุมเวอร์ชัน
ตารางต่อไปนี้อธิบายคุณลักษณะของระบบควบคุมเวอร์ชันและระบบจัดการการกำหนดค่าซอฟต์แวร์ (SCM) ที่สำคัญซึ่งสามารถใช้เปรียบเทียบและหาความแตกต่างระหว่างระบบต่างๆ ได้
ข้อมูลทั่วไป
ตารางต่อไปนี้แสดงคุณลักษณะทั่วไปของระบบซอฟต์แวร์ควบคุมเวอร์ชัน ซึ่งรวมถึง:
ข้อมูลทางเทคนิค
ตารางต่อไปนี้แสดงรายละเอียดทางเทคนิคของซอฟต์แวร์ควบคุมเวอร์ชันที่เป็นที่รู้จักกันดีบางส่วน โดยแบ่งประเภทตามหัวข้อดังต่อไปนี้:
คุณสมบัติ
ตารางต่อไปนี้จัดประเภทซอฟต์แวร์ที่มีชื่อเสียงบางส่วนตามคุณสมบัติและความสามารถ: