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

อ่าน 6 นาที

ระบบควบคุมซอร์สโค้ด

ระบบควบคุมซอร์สโค้ด ( SCCS ) เป็นระบบควบคุมเวอร์ชันที่ออกแบบมาเพื่อติดตามการเปลี่ยนแปลงในซอร์สโค้ดและไฟล์ข้อความอื่นๆ ในระหว่างการพัฒนาซอฟต์แวร์

ระบบควบคุมซอร์สโค้ด

ระบบควบคุมซอร์สโค้ด (SCCS)
ผู้เขียนต้นฉบับมาร์ค เจ. รอชไคนด์
นักพัฒนาเบลล์แล็บส์
ปล่อยพ.ศ. 2516 ( 1973 )
เขียนเป็นเวอร์ชันแรก: SNOBOL4เขียนใหม่: C
ระบบปฏิบัติการOS/360 , ยูนิก , ระบบคล้ายยูนิก
แพลตฟอร์มIBM System/370 , PDP-11 , IA-32
พิมพ์การควบคุมเวอร์ชัน
ใบอนุญาตใบอนุญาตกรรมสิทธิ์ใบอนุญาตการพัฒนาและการจัดจำหน่ายทั่วไป
เว็บไซต์ข้อกำหนดพื้นฐานของกลุ่มเปิด ฉบับที่ 7, IEEE Std 1003.1-2008, ฉบับปี 2016
ที่เก็บข้อมูลไม่มีข้อมูล

ระบบควบคุมซอร์สโค้ด ( SCCS ) เป็นระบบควบคุมเวอร์ชันที่ออกแบบมาเพื่อติดตามการเปลี่ยนแปลงในซอร์สโค้ดและไฟล์ข้อความอื่นๆ ในระหว่างการพัฒนาซอฟต์แวร์ ซึ่งช่วยให้ผู้ใช้สามารถเรียกดูเวอร์ชันก่อนหน้าของซอร์สโค้ดต้นฉบับและการเปลี่ยนแปลงที่จัดเก็บไว้ได้ เดิมทีระบบนี้ได้รับการพัฒนาขึ้นที่Bell Labsตั้งแต่ปลายปี 1972 โดยMarc Rochkindสำหรับ คอมพิวเตอร์ IBM System/370ที่ใช้ระบบปฏิบัติการ OS/ 360 [ 1 ]

คุณลักษณะเด่นของ SCCS คือ สตริง sccsidที่ฝังอยู่ในซอร์สโค้ด และ SCCS จะอัปเดตโดยอัตโนมัติสำหรับแต่ละเวอร์ชัน[ 2 ]ตัวอย่างนี้แสดงให้เห็นถึงการใช้งานในภาษาการเขียนโปรแกรม C :

static char sccsid [] = "@(#)ls.c 8.1 (Berkeley) 6/11/93" ;

สตริงนี้ประกอบด้วยชื่อไฟล์ วันที่ และอาจมีข้อความแสดงความคิดเห็นด้วย หลังจากคอมไพล์แล้ว สามารถค้นหาสตริงนี้ในไฟล์ไบนารีและออบเจ็กต์ได้โดยการค้นหารูปแบบ@(#)และสามารถใช้เพื่อกำหนดว่า ไฟล์ ซอร์สโค้ด ใด ถูกใช้ระหว่างการคอมไพล์whatคำสั่งนี้สามารถใช้เพื่อทำให้การค้นหาสตริงเวอร์ชันนี้เป็นไปโดยอัตโนมัติ[ 3 ]

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

ในปี พ.ศ. 2515 Marc Rochkindได้พัฒนา SCCS ในSNOBOL4ที่Bell Labsสำหรับ คอมพิวเตอร์ IBM System/370ที่ใช้OS/360 MVT [ 1 ]เขาได้เขียน SCCS ใหม่ด้วยภาษาโปรแกรม C เพื่อใช้งานภายใต้UNIXซึ่งในขณะนั้นทำงานบนPDP-11ในปี พ.ศ. 2516

เวอร์ชันแรกที่เผยแพร่สู่สาธารณะคือ SCCS เวอร์ชัน 4 เมื่อวันที่ 18 กุมภาพันธ์ พ.ศ. 2520 [ 4 ]สามารถใช้งานได้กับระบบปฏิบัติการProgrammer's Workbench (PWB) เวอร์ชัน 4 ของ SCCS เป็นเวอร์ชันแรกที่ใช้รูปแบบไฟล์ประวัติแบบข้อความ เวอร์ชันก่อนหน้าใช้รูปแบบไฟล์ประวัติแบบไบนารี เวอร์ชัน 4 ไม่ได้ถูกเขียนหรือดูแลโดย Marc Rochkind อีกต่อไป ต่อมา SCCS ถูกรวมอยู่ในระบบปฏิบัติการ System IIIและSystem VของAT&Tแต่ไม่ได้อนุญาตให้ใช้กับ32Vซึ่งเป็นต้นกำเนิดของBSD [ 5 ] ชุดคำสั่ง SCCS เป็นส่วนหนึ่งของSingle UNIX Specificationแล้ว

SCCS เป็นระบบควบคุมเวอร์ชันที่โดดเด่นสำหรับ Unix จนกระทั่งระบบควบคุมเวอร์ชัน รุ่นหลัง โดยเฉพาะ RCSและCVS ในภายหลัง ได้รับการยอมรับอย่างแพร่หลายมากขึ้น ปัจจุบัน ระบบควบคุมเวอร์ชันรุ่นแรกๆ เหล่านี้โดยทั่วไปถือว่าล้าสมัย โดยเฉพาะใน ชุมชน โอเพนซอร์สซึ่งส่วนใหญ่ได้นำ ระบบ ควบคุมเวอร์ชันแบบกระจาย มาใช้ แล้ว อย่างไรก็ตาม รูปแบบไฟล์ SCCS ยังคงถูกใช้ภายในโดยโปรแกรมควบคุมเวอร์ชันรุ่นใหม่บางโปรแกรม รวมถึงBitKeeperและTeamWareซึ่ง TeamWare เป็นส่วนหน้าของ SCCS Sablime [ 6 ]ได้รับการพัฒนาจาก SCCS เวอร์ชันที่แก้ไขแล้ว[ 7 ]แต่ใช้รูปแบบไฟล์ประวัติที่ไม่เข้ากันกับ SCCS รูปแบบไฟล์ SCCS ใช้เทคนิคการจัดเก็บที่เรียกว่าinterleaved deltas (หรือ weave [ 8 ] ) ปัจจุบันนักพัฒนา ซอฟต์แวร์ระบบควบคุมเวอร์ชันหลายคนถือว่าเทคนิคการจัดเก็บนี้เป็นพื้นฐานสำหรับ เทคนิค การรวมและการกำหนดเวอร์ชัน ขั้นสูง [ 9 ]เช่น การรวม "Precise Codeville" ("pcdv")

นอกจากการแก้ไขปัญหาปี 2000ในปี 1999 แล้ว ไม่มีการพัฒนาใดๆ เกิดขึ้นกับ SCCS เวอร์ชันต่างๆ ที่เฉพาะเจาะจงสำหรับผู้จำหน่าย UNIX [ 10 ] ในปี 2006 Sun Microsystems (ปัจจุบันเป็นส่วนหนึ่งของOracle ) ได้เผยแพร่ SCCS เวอร์ชัน Solaris ของตน เป็นโอเพนซอร์สภายใต้ใบอนุญาต CDDLซึ่งเป็นส่วนหนึ่งของความพยายามในการเปิดซอร์สโค้ด Solaris [ 11 ]

พื้นหลัง

ระบบควบคุมซอร์สโค้ด (SCCS) เป็นระบบสำหรับควบคุมการเปลี่ยนแปลงไฟล์และประวัติ โดยทั่วไปซอฟต์แวร์จะได้รับการอัปเกรดเป็นเวอร์ชันใหม่โดยการแก้ไขข้อผิดพลาด ปรับปรุงอัลกอริทึม และเพิ่มฟังก์ชันเพิ่มเติม[ 12 ]การเปลี่ยนแปลงซอฟต์แวร์ทำให้เกิดปัญหาที่ต้องใช้การควบคุมเวอร์ชันเพื่อแก้ไข[ 1 ]

  • โค้ดต้นฉบับใช้พื้นที่มากเกินไป เนื่องจากมีการทำซ้ำในทุกเวอร์ชัน
  • การหาข้อมูลเกี่ยวกับเวลาและสถานที่ที่การเปลี่ยนแปลงเกิดขึ้นนั้นเป็นเรื่องยาก
  • การค้นหาเวอร์ชันที่ ลูกค้า มีปัญหา อย่างแน่ชัดนั้นเป็นเรื่องยาก

SCCS ถูกสร้างขึ้นเพื่อแก้ปัญหาเหล่านี้ SCCS จาก AT&T มีเวอร์ชันหลักห้าเวอร์ชันสำหรับระบบปฏิบัติการ IBM และเวอร์ชันหลักห้าเวอร์ชันสำหรับ UNIX [ 13 ] การใช้งานเฉพาะสองแบบที่ใช้ SCCS ได้แก่ PDP 11 ภายใต้ Unix และ IBM 370 ภายใต้ระบบปฏิบัติการ[ 1 ]

องค์ประกอบ

SCCS ประกอบด้วยสองส่วน: คำสั่ง SCCS และไฟล์ SCCS [ 14 ]การดำเนินการพื้นฐานทั้งหมด (เช่น สร้าง ลบ แก้ไข) สามารถทำได้โดยใช้คำสั่ง SCCS [ 14 ]ไฟล์ SCCS มีคำนำหน้ารูปแบบเฉพาะs.ซึ่งถูกควบคุมโดยคำสั่ง SCCS [ 2 ]

ไฟล์ SCCS

ไฟล์ SCCS ประกอบด้วยสามส่วน: [ 15 ]

  • ตารางเดลต้า
  • แฟล็กการเข้าถึงและการติดตาม
  • เนื้อหาหลักของข้อความ

ตารางเดลต้า

ใน SCCS เดลต้าคือการแก้ไขครั้งเดียวในไฟล์ SCCS เดลต้าจะถูกเก็บไว้ในตารางเดลต้า ดังนั้นไฟล์ SCCS แต่ละไฟล์จึงมีบันทึกการเปลี่ยนแปลงของตัวเอง[ 15 ]

แฟล็กควบคุมและติดตามในไฟล์ SCCS

การดำเนินการทุกอย่างของไฟล์ SCCS แต่ละไฟล์จะถูกติดตามด้วยแฟล็ก หน้าที่ของแฟล็กมีดังต่อไปนี้: [ 15 ]

  • ตั้งค่าสิทธิ์ในการแก้ไขไฟล์ SCCS ทุกไฟล์
  • ควบคุมการเผยแพร่ไฟล์ SCCS ทุกไฟล์อย่างเข้มงวด
  • อนุญาตให้แก้ไขไฟล์ SCCS ทุกไฟล์ ร่วมกันได้
  • การเปลี่ยนแปลงที่อ้างอิงซึ่งกันและกันของไฟล์ SCCS ทุกไฟล์

ร่างกาย

SCCS ใช้เรคอร์ดควบคุมสามประเภทเพื่อติดตามการแทรกและการลบที่ใช้ในเดลต้าต่างๆ ได้แก่ เรคอร์ดควบคุมการแทรก เรคอร์ดควบคุมการลบ และเรคอร์ดควบคุมการสิ้นสุด เมื่อใดก็ตามที่ผู้ใช้เปลี่ยนแปลงส่วนใดส่วนหนึ่งของข้อความ จะมีการแทรกเรคอร์ดควบคุมไว้รอบๆ การเปลี่ยนแปลงนั้น เรคอร์ดควบคุมจะถูกจัดเก็บไว้ในเนื้อหาพร้อมกับเรคอร์ดข้อความต้นฉบับ[ 1 ]

คำสั่งพื้นฐานของ SCCS

SCCS มีชุดคำสั่งในรูปแบบของการเรียกใช้มาโครที่ดำเนินการหรือเริ่มต้นฟังก์ชันการจัดการซอร์สโค้ดด้วยไวยากรณ์ที่เรียบง่าย เช่น create, get, edit, prt [ 16 ] [ 17 ] นอกจากนี้ยังให้การเข้าถึงประวัติการแก้ไขของไฟล์ภายใต้การจัดการ คำ สั่งเหล่านี้ถูกนำไปใช้เป็นอาร์กิวเมนต์กริยาในโปรแกรมไดรเวอร์sccs

สร้าง

คำสั่ง sccs createใช้ข้อความจากไฟล์ต้นฉบับเพื่อสร้างไฟล์ประวัติใหม่ ตัวอย่างเช่น:

$ sccs create program.c program.c: 1.1 87 บรรทัด

ผลลัพธ์ที่ได้คือ ชื่อ เวอร์ชัน และจำนวนบรรทัด

คำสั่งนี้เป็นมาโครที่ขยายเป็นadminเพื่อสร้างไฟล์ประวัติใหม่ ตามด้วยgetเพื่อเรียกดูไฟล์นั้น

แก้ไข

$ sccs edit program.c 1.1 new delta 1.2 87 lines

แก้ไขไฟล์เฉพาะไฟล์หนึ่ง

คำสั่งนี้เป็นมาโครที่ขยายเป็นget -e

เดลเก็ต

$ sccs delget program.c comments? main function enhanced 1.2 10 inserted 0 deleted 87 unchanged 1.2 97 lines

ตรวจสอบเวอร์ชันใหม่และดาวน์โหลดเวอร์ชันใหม่จาก sccs

คำสั่งนี้เป็นมาโครที่ขยายเป็นdeltaเพื่อตรวจสอบไฟล์เวอร์ชันใหม่ จากนั้นจึงใช้getเพื่อดึงไฟล์นั้นออกมา

รับ

$ sccs get program.c 1.1 87 บรรทัด

ผลลัพธ์ที่ได้คือเวอร์ชันและจำนวนบรรทัดที่คุณต้องการดึงจากไฟล์ที่ระบุ

พาร์ท

$ sccs prt program.c 

คำสั่งนี้จะสร้างรายงานเกี่ยวกับการเปลี่ยนแปลงในซอร์สโค้ด

การนำไปใช้

เวอร์ชัน UNIX SCCS

ระบบปฏิบัติการ UNIXส่วนใหญ่มี SCCS เวอร์ชันหนึ่งซึ่งอย่างไรก็ตามมักจะไม่มีการพัฒนาต่อยอดอย่างต่อเนื่อง[ 18 ]

ส้อมของ Jörg Schilling

Jörg Schillingผู้ล่วงลับ(ผู้ร้องขอการเผยแพร่ SCCS ในช่วงแรกๆ ของ โครงการ OpenSolaris ) [ 19 ]ได้ดูแลSCCS เวอร์ชันแยก[ 20 ] [ 21 ]ซึ่งอิงตามซอร์สโค้ดของ OpenSolaris โดยได้รับการปรับปรุงคุณสมบัติหลักๆ แต่ยังคงเข้ากันได้กับ SCCS เวอร์ชันดั้งเดิม เว้นแต่จะใช้โหมด "โครงการใหม่" [ 22 ]

โครงการมรดกตกทอด

โครงการHeirloomประกอบด้วย SCCS เวอร์ชันที่ได้มาจากซอร์สโค้ดOpenSolaris [ 23 ]และได้รับการบำรุงรักษาระหว่างเดือนธันวาคม พ.ศ. 2549 ถึงเมษายน พ.ศ. 2550 [ 24 ]

ยูทิลิตี้การแปลง GNU

GNUเสนอโปรแกรมGNU CSSC ("Compatibly Stupid Source Control") ที่เข้ากันได้ กับ SCCS ซึ่งบางครั้งใช้ในการแปลงไฟล์เก็บถาวร SCCS ไปยังระบบที่ใหม่กว่า เช่นCVSหรือSubversion [ 25 ]ไม่ใช่การใช้งาน SCCS ที่สมบูรณ์[ 26 ]และไม่แนะนำให้ใช้ในโครงการใหม่ แต่ส่วนใหญ่มีไว้สำหรับการแปลงเป็นระบบควบคุมเวอร์ชันที่ทันสมัย

ระบบควบคุมเวอร์ชันอื่นๆ

ตั้งแต่ทศวรรษ 1990 เป็นต้นมาระบบควบคุมเวอร์ชันใหม่ๆ จำนวนมากได้รับการพัฒนาและได้รับความนิยม โดยได้รับการออกแบบมาเพื่อจัดการโครงการที่มีไฟล์จำนวนมาก และมีฟังก์ชันการทำงานขั้นสูง เช่น การทำงานแบบหลายผู้ใช้ การควบคุมการเข้าถึง การสร้างอัตโนมัติ การสนับสนุนเครือข่าย การจัดการการเผยแพร่ และการควบคุมเวอร์ชันแบบกระจายBitkeeperและTeamWareใช้รูปแบบไฟล์ SCCS ภายใน และสามารถถือได้ว่าเป็นผู้สืบทอดของ SCCS [ 27 ] [ 28 ]

บนระบบ BSD นั้น SCCSID จะถูกแทนที่ด้วย RCSID ที่เริ่มต้นและสิ้นสุดด้วย$ ; เครื่องมือที่เกี่ยวข้องคือident [ 29 ]ระบบนี้เดิมทีใช้โดยRCS และถูกเพิ่มโดยอัตโนมัติเมื่อเช็คเอาท์ ตัวระบุการควบคุมการ แก้ไขซอร์สโค้ดที่ได้นั้นจะถูกบันทึกไว้ใน คู่มือสไตล์ของ NetBSD [ 30 ]และFreeBSD [ 31 ]สำหรับฐานโค้ดของตนเอง NetBSD กำหนดคำหลักแบบกำหนดเอง$NetBSD: ...$ในขณะที่ FreeBSD กำหนด$FreeBSD: ...$และมาโครที่เปลี่ยนชื่อเป็น __FBSDID

ระบบควบคุมเวอร์ชัน SRC สามารถใช้รูปแบบไฟล์ SCCS ภายใน (หรือRCS ) และมุ่งเน้นที่จะมอบอินเทอร์เฟซผู้ใช้ที่ดีกว่าสำหรับ SCCS ในขณะที่ยังคงจัดการเฉพาะโปรเจกต์ไฟล์เดียว[ 32 ]

อ่านเพิ่มเติม

  • SCCS ของ Schily บน Codeberg
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Source_Code_Control_System&oldid=1329620932 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ระบบควบคุมซอร์สโค้ด

ระบบควบคุมซอร์สโค้ด ( SCCS ) เป็นระบบควบคุมเวอร์ชันที่ออกแบบมาเพื่อติดตามการเปลี่ยนแปลงในซอร์สโค้ดและไฟล์ข้อความอื่นๆ ในระหว่างการพัฒนาซอฟต์แวร์

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

ในปี พ.ศ. 2515 Marc Rochkind ได้พัฒนา SCCS ใน SNOBOL4 ที่ Bell Labs สำหรับ คอมพิวเตอร์ IBM System/370 ที่ใช้ OS/360 MVT [ 1 ] เขาได้เขียน SCCS ใหม่ด้วยภาษาโปรแกรม C เพื่อใช้งานภายใต้ UNIX ซึ่งในขณะนั้นทำงานบน PDP-11 ในปี พ.ศ. 2516

พื้นหลัง

ระบบควบคุมซอร์สโค้ด (SCCS) เป็นระบบสำหรับควบคุมการเปลี่ยนแปลงไฟล์และประวัติ โดยทั่วไปซอฟต์แวร์จะได้ รับการอัปเกรด เป็นเวอร์ชันใหม่โดยการแก้ไขข้อผิดพลาด ปรับปรุงอัลกอริทึม และเพิ่มฟังก์ชันเพิ่มเติม [ 12 ]...

องค์ประกอบ

SCCS ประกอบด้วยสองส่วน: คำสั่ง SCCS และไฟล์ SCCS [ 14 ] การดำเนินการพื้นฐานทั้งหมด (เช่น สร้าง ลบ แก้ไข) สามารถทำได้โดยใช้คำสั่ง SCCS [ 14 ] ไฟล์ SCCS มีคำนำหน้ารูปแบบเฉพาะ s. ซึ่งถูกควบคุมโดยคำสั่ง SCCS [ 2 ]