การควบคุมเวอร์ชันทำงานบนไมโครคอมพิวเตอร์ในยุค 80 และ 90 อย่างไร


31

ฉันอยากรู้ว่าทีมโปรแกรมเมอร์มักจะจัดการการพัฒนาซอฟต์แวร์ของพวกเขาในยุค 80 และต้นยุค 90 อย่างไร มีการจัดเก็บซอร์สโค้ดทั้งหมดไว้ในเครื่องเดียวที่ทุกคนทำงานหรือถูกส่งผ่านไปมาและคัดลอกด้วยตนเองผ่านฟลอปปี้และรวมเข้าด้วยกันหรือพวกเขาใช้ระบบควบคุมการแก้ไขผ่านเครือข่าย (ตัวอย่างเช่น CVS) เช่นเดียวกับที่เราทำ ตอนนี้หรือไม่ หรืออาจจะมีการใช้ CVS ออฟไลน์เช่นเดียวกัน

ทุกวันนี้ทุกคนขึ้นอยู่กับการควบคุมแหล่งที่มา .. มันไม่มีเกมง่ายๆ แต่ในยุค 80 เครือข่ายคอมพิวเตอร์ไม่ใช่เรื่องง่ายที่จะตั้งค่าและสิ่งต่าง ๆ เช่นแนวปฏิบัติที่ดีที่สุดยังคงถูกคิดออก ...

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

นอกจากนี้สิ่งนี้แตกต่างระหว่างแพลตฟอร์มอย่างไร พูดว่า Apple กับ Commodore 64 กับ Amiga กับ MS-DOS เทียบกับ Windows กับ Atari

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


3
RCSเปิดตัวครั้งแรกในปี 1982
5gon12eder

1
แต่มีคนใช้ไปกี่คน? RCS นั้นเป็น AFAIK ที่สร้างขึ้นสำหรับเครื่อง Unix และ Unix ที่ไม่ได้ทำงานบนไมโครคอมพิวเตอร์
9a3eedi

2
เรามีระบบเครือข่าย ไม่ได้ตัดสินบน tcp / ip มีคนอื่นเช่น decnet การแชร์ไฟล์นั้นมีอยู่ในหลายโปรโตคอล และทีมพัฒนาใน minis แม้แต่ micros แม้ว่านักพัฒนาอิสระเล็ก ๆ บางคน (ไม่ใช่ในทีม) เพียงทำการสำรองข้อมูลแทนเวอร์ชันโดยใช้การควบคุมแบบเป็นทางการ บางคนอาจเลียนแบบการควบคุมเวอร์ชันด้วยการสำรองข้อมูลด้วยตนเองอย่างเข้มงวด
Erik Eidt

2
เราทำอย่างระมัดระวังส่วนใหญ่เป็น wetware เพราะสิ่งที่คุณคิดว่าการควบคุมเวอร์ชันไม่มีอยู่ในแพลตฟอร์มที่คุณพูดถึง
Blrfl

2
ในกรณีของฉันเราใช้การ์ดเจาะรูสำหรับคอมพิวเตอร์ขนาดเล็กในต้นปี 1980 บางครั้งเราอาจบันทึกรหัสแหล่งที่มาในตู้เก็บเอกสารหมัด
Gilbert Le Blanc

คำตอบ:


22

ประการแรกเมื่อไมโครคอมพิวเตอร์ออกมาเป็นครั้งแรกซอฟต์แวร์ส่วนใหญ่จะเขียนในระบบ Unix หรือ VMS และ“ คอมไพเลอร์ข้าม / ประกอบ” ลงบนระบบเป้าหมาย ระบบคอมพิวเตอร์เหล่านี้เป็นผู้ใช้หลายมักจะมีขั้วจำนวนมากและมีแหล่งที่มาของรหัสระบบควบคุมเช่นSCCS

ระบบเครือข่ายเป็นตัวเลือกสำหรับไมโครคอมพิวเตอร์ตั้งแต่กลางทศวรรษ 1980 ซึ่งมักเชื่อมต่อกับระบบ Unix ในฐานะ "เซิร์ฟเวอร์ไฟล์" (อาจใช้เพียง RS232 และ Kermit เพื่อถ่ายโอนไฟล์โดยใช้ SCCS บนระบบ Unix)

ดูประวัติความเป็นมาของการควบคุมเวอร์ชันโดย Eric Sink เพื่อดูภาพรวมว่าระบบควบคุมเวอร์ชันเปลี่ยนแปลงไปอย่างไรในช่วงหลายปีที่ผ่านมา

ฉันจำได้ว่าอ่านเกี่ยวกับการควบคุมซอร์สโค้ดใน "BYTE" ในช่วงปลายทศวรรษ 1980 ดังนั้นจึงต้องมีการใช้กับ "ระบบขนาดเล็ก" ในตอนนั้น

SourceSafeก่อตั้งขึ้นอย่างดีโดยช่วงกลางยุค 90 ที่ทำงานบน Dos, Windows และอื่น ๆ

นี้แสดงให้เห็นถึงการเชื่อมโยงบทความเกี่ยวกับ PVCS ทำงานบนเครื่องคอมพิวเตอร์จาก 1994มันเป็นที่รุ่น 6.2 เพื่อให้ได้รับอย่างชัดเจนเกี่ยวกับบางครั้งวิกิพีเดียกล่าวว่าจากวันที่ 1985


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

ฉันจำได้ว่าทำงานกับซอฟต์แวร์การโอนย้ายโปรเจ็กต์จากยูนิตเป็น Windows NT 3.5 โปรแกรมเมอร์ที่รู้วิธีการโปรแกรมสำหรับ Windows มักจะไม่เคยได้ยินแม้แต่การควบคุมซอร์สโค้ดในเวลานั้น


ไทม์ไลน์นี้นำมาจากบล็อกโพสต์โดย codicesoftwareพวกเขาขาย Plastic SCM แต่ภาพรวมของประวัติความเป็นมาของระบบอื่น ๆ นั้นดูสมเหตุสมผลระบบเก่า ๆ สองสามตัวก่อน RCS จะเหลืออยู่ของภาพ

เส้นเวลาของประวัติการควบคุมเวอร์ชัน


1
เมื่อฉันเริ่มทำงานฉันใช้ VSS .. ฉันชอบความคิดเห็นที่ยินดีต้อนรับสู่นรก ฉันจำได้ว่าได้รับการขอร้องจากหัวหน้าทีมของฉันหากว่ามันจะคุ้มค่าที่จะเปลี่ยนสำหรับการบังคับ ... เฮ้!
draeron

@draeron ฉันพบว่า VSS นั้นใช้ได้ถ้าคุณไม่คาดหวังว่าจะสามารถรวมสาขาและมันอยู่ในไฟล์เซิร์ฟเวอร์ที่มั่นคง บริษัท หนึ่งที่ฉันทำงานให้มีบนเซิร์ฟเวอร์ที่มีชิปหน่วยความจำไม่ดีดังนั้นจึงทำให้ฐานข้อมูลเสียหาย! แต่ให้ฉัน Perforce แทนวันของสัปดาห์ใด ๆ ....
เอียน

"ยินดีต้อนรับสู่นรก" สามารถใช้กับ Clearcase ... shudder
Andrew Kennan

13

นี่อาจไม่ใช่ตัวแทนของอุตสาหกรรมเกมขนาดใหญ่ แต่ทำงานได้ดีใน บริษัท เกมเล็ก ๆ ของเรา ไม่เคยทำงานกับซอฟต์แวร์ทางธุรกิจซึ่งอาจมีข้อกำหนดอื่น ๆ

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

ในที่สุดการปรับขนาดนี้ค่อนข้างสบายสำหรับคนประมาณ 3 คน หลังจากนั้นเราก็เติบโตทีมและจบลงด้วยความยุ่งเหยิงของไฟล์ทั่วทั้งสถานที่เป็นเวลาหนึ่งปีหรือมากกว่านั้นจนกระทั่งฉันเบื่อกับการพยายามติดตามการเปลี่ยนแปลงของแต่ละคนและเราก็เริ่มใช้ Perforce ประมาณปี 1997-98


6

คุณต้องเห็นสิ่งนี้ในบริบทของโครงสร้างพื้นฐานทั่วไปในเวลานั้น ในช่วงต้นยุค 80 ไอบีเอ็มเปิดตัว "คอมพิวเตอร์ส่วนบุคคล" และคุณสามารถใช้มันได้อย่างแท้จริง วิธีที่พบได้บ่อยที่สุดในการพัฒนาแอปพลิเคชั่นสำหรับพีซีคือผู้ชายคนหนึ่งที่สร้างบางสิ่งและพยายามขายมัน ดังนั้นหนึ่งฟลอปปี้ต่อรุ่นที่วางจำหน่ายอาจเป็นเรื่องปกติ คุณสามารถซื้อป้ายที่มีสีสันสวยงามและเขียนชื่อผลิตภัณฑ์ของคุณและรุ่นของมัน สำหรับผลิตภัณฑ์ที่ประสบความสำเร็จส่วนใหญ่ในสมัยนั้นคุณรู้ชื่อของคนที่เขียนมัน

เครือข่ายถูกนำมาใช้เป็นส่วนเสริม API ของลูกค้าถูกแฮ็กเข้าสู่ระบบดอสและชิ้นส่วนของเซิร์ฟเวอร์นั้นถูกใช้งานโดยเฉพาะและเป็นระบบปฏิบัติการที่เป็นกรรมสิทธิ์ของเครื่องอื่น โดยทั่วไปมีราคาแพง (ไม่ใช่สำหรับคนจำนวนมาก) และโดยทั่วไปเพียงแค่เสนอไฟล์และเครื่องพิมพ์ร่วมกัน ในโลกของพีซีสิ่งต่าง ๆ เริ่มเปลี่ยนไปเมื่อมีการเปิดตัว Windows สำหรับ Workgroups และ Windows NT นั่นเปิดโอกาสมากมาย ในที่สุดระบบเครือข่ายก็ถูกรวมเข้ากับสภาพแวดล้อมที่โปรแกรมเมอร์คุ้นเคยและโปรแกรมเมอร์ Windows สามารถเขียนแอปพลิเคชันที่สามารถพูดคุยกับแต่ละคนผ่านเครือข่ายได้ นี่คือจุดสิ้นสุดของ NetWare ในฐานะระบบปฏิบัติการเครือข่ายที่โดดเด่น

อีกไม่นานระบบควบคุมหลายเวอร์ชันก็โผล่ขึ้นมาพร้อมกับไคลเอนต์และส่วนประกอบเซิร์ฟเวอร์ที่คุณสามารถติดตั้งบนเครื่องต่าง ๆ ได้อย่างง่ายดาย ด้วยปลั๊กอินสำหรับคอมโพเนนต์ IDE และไคลเอ็นต์ที่สนับสนุนตัวเลือกบรรทัดคำสั่งที่เปิดใช้งานการรวมในระบบการสร้าง

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


1
Netware ยังคงมีบทบาทค่อนข้างเด่นจนกระทั่ง Active Directory เปิดตัวด้วย win2k ยังมีอีกหลายสิ่งที่ Netware ทำได้ดีที่โฆษณาทำไม่ได้หากไม่มีการโจมตีอย่างจริงจัง
ไวแอตต์บาร์เน็ตต์

ดังนั้นสิ่งที่คุณกำลังพูดก็คือในขณะที่คนที่มีไมโครคอมพิวเตอร์ไม่ได้ใช้การควบคุมแหล่งเพราะพวกเขาไม่ต้องการหรือไม่ คือมันเป็นเพียงคนเดียวที่สร้างโปรแกรมในบ้านของเขาโดยทั่วไปดังนั้นไม่จำเป็นต้องแชร์รหัสหรือผสานหรือไม่
9a3eedi

2
@ 9a3eedi: ฉันกำลังวาดภาพทั่วไป ผู้คนอาจรู้สึกว่าต้องการ แต่มันก็ไม่ได้อยู่ที่นั่นเพื่อให้คุณใช้ชีวิตโดยวิธีการของคุณ ผสานคุณพูด ฟังดูเหมือนโปรแกรมที่ซับซ้อนขนาดใหญ่ สัตว์ร้ายเช่นนี้ต้องการหน่วยความจำเท่าใด จะมีอะไรเหลือสำหรับให้รวมรหัสเข้าด้วยกัน ฉันสามารถแลกเปลี่ยนฟลอปปีได้ แต่ถ้าความจำของฉันเต็มฉันจะไปไหนดี! มันไม่ได้จนกว่าผู้คนจะมี "ความทรงจำทั้งหมดที่พวกเขาต้องการ" (เช่น 640K) ว่ามันเป็นไปได้
Martin Maat

5

ในยุค 90 ฉันใช้ซอฟต์แวร์สำหรับการควบคุมเวอร์ชันแน่นอน มี SCCS และ MPW ของ Apple มีการควบคุมเวอร์ชันในตัว (Projector) และฉันคิดว่าฉันใช้ Projector ประมาณปี 1992 ที่หนึ่ง บริษัท ระบบควบคุมเวอร์ชันเป็นตู้ขนาดใหญ่ที่มีฟลอปปี้ดิสก์ทุกรุ่นถ่ายสัปดาห์ละครั้ง


SCCS ไม่ทำงานกับไมโครคอมพิวเตอร์ และไม่สามารถทำงานเพราะมันอาศัยในคุณลักษณะหมดจดที่เฉพาะเจาะจงเพื่อ Solaris (ไม่ได้ทั่วไป Unix) ระบบแฟ้ม
ริ้น

1
@gnat - คุณกำลังพูดถึงSCCSเดียวกันหรือไม่ ฉันรู้ว่าฉันใช้มันใน Next ในช่วงกลาง 90s และเชื่อว่าฉันใช้มันใน Unices Solaris Unices ต่างๆในช่วงปลายยุค 80 และบทความ Wikipedia ที่เชื่อมโยงดูเหมือนจะยอมรับว่าไม่ใช่ Solaris-only
kdgregory

3
ค่อนข้างแน่ใจว่าฉันใช้ SCCS ใน Sys V 3B2-400 ที่ใช้งานมาตั้งแต่ปี 1986 ISTR ที่เราใช้แทน RCS เพราะเราทำงานกับที่ปรึกษาซึ่ง บริษัท ใช้ระบบ Xenix ที่ใช้ Z8000 และเขามีช่างบางคนที่คิดว่ามันเป็น ถูกนำมาใช้
TMN

1
ฉันใช้ SCCS ในปี 1984 กับ Microsoft Xenix ที่ทำงานกับโปรเซสเซอร์ Motorola 68000
Charles E. Grant

2
เป็นความจริงที่ Linux ไม่สนับสนุน SCCS ในช่วงปี 1980 สำหรับเรื่องนั้นการสนับสนุน Linux สำหรับ SCCS นั้นไม่เพียงพอในช่วงปี 1880 เช่นกัน SCCS และโปรแกรมอื่น ๆ (เช่น rn newsreader) ภายใต้ 1980 Unix ใช้ open (2) เพื่อสร้างไฟล์ล็อคคำแนะนำซึ่งทำงานได้หากผู้ใช้ทุกคนปฏิบัติตามโปรโตคอลเดียวกัน เนื่องจาก SCCS เป็นหนึ่งในการสร้างการล็อกคำแนะนำอาจเป็นที่แน่นอนว่าจะต้องเคารพพวกเขา
msw

1

งานเขียนโปรแกรมภาคฤดูร้อนครั้งแรกของฉันในขณะที่ฉันยังคงอยู่ที่โรงเรียน (ซึ่งน่าจะเป็นประมาณ 91 ฉันคิดว่า) คือการใช้การจัดการเวอร์ชันอัตโนมัติและระบบสำรองข้อมูลสำหรับ บริษัท ขนาดเล็กที่ฉันทำงานอยู่ เรามี 3 ชิ้นเชื่อมต่อกับเซิร์ฟเวอร์ netware และในที่สุดเจ้าของก็เบื่อกับการจัดการข้อขัดแย้งของเวอร์ชันและหาสิ่งที่จำเป็นในการสำรองข้อมูลเพื่อ floppies ดังนั้นเราจึงทำให้นักพัฒนาทำงานบนพีซีของตนเองแทนที่จะเก็บไว้ในไฟล์โดยตรงบนเซิร์ฟเวอร์ อย่างที่พวกเขามีมาจนถึงตอนนี้และฉันได้เขียนระบบที่เก็บไฟล์ทั้งหมดของพวกเขาให้อ่านเท่านั้นจนกว่าพวกเขาจะรันโปรแกรมที่ตรวจสอบว่าไม่มีใครใช้พวกเขาแล้วบันทึกการใช้งานในฐานข้อมูล btrieve กลาง (ฐานข้อมูลเชิงสัมพันธ์ api มากกว่า sql เต็มรูปแบบซึ่งทำงานบนเซิร์ฟเวอร์ netware) อีกโปรแกรมหนึ่งตรวจสอบการเปลี่ยนแปลงที่แก้ไขแล้วและคัดลอกไปยังเซิร์ฟเวอร์

ในขณะที่ระบบนี้สร้างขึ้นเองสำหรับ บริษัท ขนาดเล็กที่ฉันทำงานอยู่ฉันนึกภาพร้านค้าที่คล้ายกันหลายแห่งมีกระบวนการที่คล้ายกัน


1

จากประสบการณ์ส่วนตัว: 1985 การพัฒนาเครือข่าย MS-DOS PVCS นั้นมีให้บริการและแพงเกินไป สำหรับ Apple และพีซีที่ไม่ใช่ MSDOS: ไม่มีอะไรเลย ฉันใช้ T-lib ($ 50) จากปี 1987 พอร์ต Unix (SCCS) เริ่มกรองลงรอบปี 1990 SourceSafe ประมาณปี 1992

ภายในปี 1995 ถ้าคุณไม่ได้ใช้ VCS คุณก็ไม่ได้จริงจัง


ฉันจะเปลี่ยนประโยคสุดท้ายเป็นปี 1985 :( แต่หลังจากนั้นฉันทำงานด้านการเงิน
user151019

@mark: ฉันสงสัยอย่างมากว่านี่เป็นเรื่องจริงสำหรับการพัฒนาบนพีซี บริษัท ส่วนใหญ่มักละเลยพีซีจนกระทั่ง Windows 3
david.pfx

มีจำนวนมากของการเขียนโปรแกรม DOS เป็นและ 86 ผมใช้ PVCS และ joiners ใหม่มีภูมิหลัง Unix แต่เท่าที่สังเกตเห็นก็คือในธนาคารและการเงินดังนั้นเราอาจจะได้รับไปข้างหน้า
user151019

@mark: PVCS มีให้บริการในปี 1985 แต่แพงเกินไปสำหรับการใช้งานส่วนใหญ่ ($ 000s) เฉพาะผู้ที่ย้ายจากระบบที่ใหญ่กว่าและเงินที่จะเผาไหม้เท่านั้นที่จะใช้มัน
david.pfx

-1

ในปี 2536-2538 ฉันอยู่กับผู้จัดการเงินบำนาญที่มีนักพัฒนา 15 คนทำการพัฒนา C / C ++ ใน SunOS ด้วย SPARCStation 20s และ Sun IPX codebase ของเราอยู่ในไดเรกทอรีที่ติดตั้ง NFS ตอนแรกที่เรากำลังทำคัดลอกโฟลเดอร์รุ่นแต่ในบางจุดที่เราย้ายไปSCCSและบางทีมเริ่มใช้RCS

ในปีพ. ศ. 2538 ฉันย้ายไปที่ บริษัท อื่นโดยมีผู้พัฒนามากกว่า 80 รายซึ่งทำการพัฒนา C / C ++ ในนิวยอร์กลอนดอนและฮ่องกง เราใช้ClearCaseกับแอดออนหลายไซต์เพื่อจัดการสภาพแวดล้อมการพัฒนา

ClearCase สามารถทำการซิงโครไนซ์ฐานรหัสระหว่างไซต์ได้ดี แต่ในเวลานั้นต้องการผู้ดูแลระบบเกือบเต็มเวลาเพื่อให้สิ่งต่าง ๆ ทำงานต่อไป มันก็ช้ากว่ามากเพราะ ClearCase นำเสนอไฟล์ในระบบไฟล์เสมือนพร้อมการกำหนดค่าที่ระบุรุ่นของไดเรกทอรีและชื่อไฟล์ตัวแทนที่ขึ้นอยู่กับสาขาเวลาและ / หรือแท็ก ในกรณีทางพยาธิวิทยาหนึ่งสามารถระบุไฟล์ทุกไฟล์ให้มีรุ่นที่แตกต่างกัน


1
คำถามนั้นถามถึงข้อมูลเกี่ยวกับระบบที่ไม่ใช่ยูนิกซ์ไมโครโดยเฉพาะ แต่ระบบที่คุณอธิบายนั้นมีอยู่ในเวิร์คสเตชั่นของยูนิกซ์เท่านั้น (ในเวลานั้น)
จูลส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.