Ich bin gespannt, wie Programmiererteams ihre Softwareentwicklung in den 80er und frühen 90er Jahren gemanagt haben. Wurde der gesamte Quellcode einfach auf einem Computer gespeichert, an dem alle gearbeitet haben, oder wurde der Quellcode herumgereicht und manuell per Diskette kopiert und manuell zusammengeführt, oder verwendeten sie tatsächlich Revisionskontrollsysteme über ein Netzwerk (z. B. CVS), wie wir es tun? jetzt? Oder wurde vielleicht so etwas wie ein Offline-CVS verwendet?
Heutzutage ist jeder auf die Quellcodeverwaltung angewiesen. In den 80er Jahren waren Computernetzwerke jedoch nicht so einfach einzurichten, und es wurden immer noch Best Practices herausgefunden ...
Ich weiß, dass die Programmierung in den 70er und 60er Jahren ziemlich unterschiedlich war, so dass eine Versionskontrolle nicht erforderlich war. In den 80ern und 90ern begannen die Menschen, Computer zum Schreiben von Code zu verwenden, und die Größe und der Umfang der Anwendungen nahmen zu. Ich frage mich also, wie die Leute das damals alles geschafft haben.
Wie unterscheidet sich dies auch zwischen Plattformen? Sagen wir Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari
Hinweis: Ich spreche hauptsächlich von der Programmierung auf Mikrocomputern der damaligen Zeit, nicht auf großen UNIX-Computern.
quelle
Antworten:
Erstens, als Mikrocomputer zum ersten Mal herauskamen, wurde die Software hauptsächlich auf Unix- oder VMS-Systemen geschrieben und auf dem Zielsystem „cross compiler / assembled“. Diese Computersysteme waren häufig Mehrbenutzer mit vielen Terminals und hatten Quellcode-Steuerungssysteme wie SCCS .
Bei Mikrocomputern, die ab Mitte der 1980er Jahre häufig mit einem Unix-System als "Dateiserver" verbunden waren, war die Vernetzung eine Option (möglicherweise nur mit RS232 und Kermit zum Übertragen der Dateien, mit SCCS auf dem Unix-System).
Siehe Geschichte der Versionskontrolle von Eric Sink einen Überblick darüber , wie Versionskontrollsystem erhalten haben sich im Laufe der Jahre verändert.
Ich erinnere mich, dass ich Ende der 1980er Jahre in "BYTE" über die Quellcodeverwaltung gelesen habe, daher muss es bis dahin auf "kleinen Systemen" verwendet worden sein.
SourceSafe war Mitte der 90er Jahre unter DOS, Windows usw. gut etabliert.
Dieser Link zeigt einen Artikel über PVCS auf einem PC aus dem Jahr 1994 , es ist in der Version 6.2, also eindeutig schon seit einiger Zeit, Wikipedia zufolge stammt er aus dem Jahr 1985 .
Nummerierte Disketten wurden jedoch von den meisten Programmierern verwendet, die bis Ende der 1990er Jahre an kleiner Software arbeiteten, um sie durch Ordner auf ihrer Festplatte zu ersetzen, die jeden Tag eine Kopie des Quellcodes erstellten.
Ich erinnere mich, dass ich an einer Projektportierungssoftware von Unit auf Windows NT 3.5 gearbeitet habe. Programmierer, die wissen, wie man für Windows programmiert, hatten zu diesem Zeitpunkt oft noch nicht einmal von der Quellcodeverwaltung gehört.
Diese Timeline stammt aus einem Blog-Beitrag von codicesoftware , sie verkaufen Plastic SCM, allerdings erscheint der Überblick über die Historie anderer Systeme sinnvoll, ein paar ältere Systeme vor RCS sind vom Image übrig geblieben.
quelle
Dies ist wahrscheinlich nicht repräsentativ für die Spieleindustrie im Allgemeinen, hat aber in unserer kleinen Spielefirma gut funktioniert. Arbeitete nie mit Business-Software, die wahrscheinlich andere Anforderungen hatte.
Von Mitte der 80er bis Mitte der 90er Jahre habe ich häufig eine Versionsnummer am Ende des Dateinamens verwendet, z. B. "game.003". Damals programmierte ich 90% in Assembler und der gesamte Code befand sich in einer einzigen großen Datei, möglicherweise mit einem oder zwei Includes, in denen ich die Versionsnummer manuell aktualisieren musste, wenn sich die Dinge änderten. Ich würde die Zahl erst erhöhen, wenn ich eine stabile Version hatte, von der ich sicher war, dass ich sie behalten wollte.
Dies skalierte schließlich etwas bequem auf ca. 3 Personen. Danach vergrößerten wir das Team und hatten ein Jahr lang überall ein Durcheinander von Akten, bis ich es satt hatte, die Veränderungen einzelner Leute aufzuspüren, und wir fingen 1997-98 an, Perforce zu verwenden.
quelle
Das muss man im Kontext der damals üblichen Infrastrukturen sehen. In den frühen 80er Jahren veröffentlichte IBM den "Personal Computer" und man kann dies wörtlich nehmen. Die gebräuchlichste Art, Anwendungen für einen PC zu entwickeln, war, dass jemand etwas erschuf und versuchte, es zu verkaufen. Eine Diskette pro freigegebener Version wäre also wahrscheinlich üblich. Sie könnten ein paar schöne bunte Etiketten kaufen und den Namen Ihres Produkts und die Version darauf schreiben. Bei den meisten erfolgreichen Produkten dieser Zeit kannte man den Namen desjenigen, der sie geschrieben hat.
Netzwerke wurden als Add-Ons eingeführt. Client-APIs wurden in DOS gehackt, und die Serverteile waren dedizierte Betriebssysteme auf einem separaten Computer. In der Regel teuer (nicht für die Massen) und bietet im Grunde nur Datei- und Druckerfreigabe. In der PC-Welt begannen sich die Dinge mit der Einführung von Windows for Workgroups und Windows NT zu ändern. Das eröffnete viele Möglichkeiten. Das Netzwerk wurde schließlich in die Umgebung integriert, mit der ein Programmierer vertraut war, und ein Windows-Programmierer konnte Anwendungen schreiben, die über das Netzwerk miteinander kommunizieren konnten. Dies war das Ende von NetWare als dem dominierenden Netzwerkbetriebssystem.
Bald tauchten mehrere Versionskontrollsysteme mit Client- und Serverkomponenten auf, die Sie problemlos auf einer beliebigen Kombination von Computern installieren konnten. Mit Plug-Ins für IDEs und Client-Komponenten, die Befehlszeilenoptionen unterstützen, die die Integration in ein Build-System ermöglichen.
Nach dem Start des Webs und dem allgegenwärtigen PC-Zugriff auf das Internet wurden die Open Source-Bewegungs- und webbasierten Quellcodeverwaltungssysteme eingeführt. Das Lustige ist, als der PC eingeführt wurde, wurde dies als kühner Schritt von zentraler Datenverarbeitung zu verteilter Datenverarbeitung angesehen. Die Definition von zentral versus verteilt ist jedoch verschwommen. Ist die Cloud die ultimative Distribution oder ist es nur der neue Monster-Zentralcomputer, der über die gesamte Leistung verfügt, ähnlich wie früher der IBM-Mainframe?
quelle
In den 90ern habe ich definitiv Software für die Versionskontrolle verwendet. Es gab SCCS und Apples MPW hatte eine integrierte Versionskontrolle (Projector). Und ich glaube, ich habe Projector um 1992 verwendet. Bei einer Firma war das Versionskontrollsystem ein großer Schrank mit Disketten jeder Version, die einmal pro Woche entnommen wurden.
quelle
Mein erster Programmierjob im Sommer, als ich noch in der Schule war (das wären ungefähr 91 gewesen, glaube ich), war die Implementierung eines automatisierten Versionsmanagement- und Backup-Systems für die kleine Firma, bei der ich arbeitete. Wir hatten 3 PCs an einen NetWare-Server angeschlossen, und der Besitzer hatte es satt, mit Versionskonflikten umzugehen und die erforderlichen Sicherungskopien auf Disketten zu erstellen. Daher ließen wir die Entwickler auf ihrem eigenen PC arbeiten, anstatt direkt in Dateien, die auf dem Server gespeichert waren Wie bisher habe ich ein System geschrieben, bei dem alle Dateien so lange schreibgeschützt waren, bis sie ein Programm ausführten, das prüfte, ob sie von niemand anderem verwendet wurden, und dann die Verwendung in einer zentralen btrieve-Datenbank (einer relationalen Datenbank mit einer einfachen Abfrage) aufzeichnete api anstatt full sql die auf dem netware server lief). Ein anderes Programm hat die geänderten Änderungen ausgecheckt und auf den Server kopiert.
Obwohl dieses System speziell für die kleine Firma entwickelt wurde, in der ich gearbeitet habe, stelle ich mir vor, dass viele ähnliche Geschäfte ähnliche Prozesse haben.
quelle
Aus eigener Erfahrung: 1985 war MS-DOS Networked Development PVCS verfügbar und zu teuer. Für Apple und alle Nicht-MSDOS-PCs: nichts. Ich habe T-lib (50 US-Dollar) aus dem Jahr 1987 verwendet. Unix-Ports (SCCS) haben um 1990 mit dem Filtern begonnen, SourceSafe um 1992.
Wenn Sie 1995 kein VCS verwendeten, waren Sie nicht ernst.
quelle
1993-1995 war ich bei einem Pensionsmanager mit 15 Entwicklern, die C / C ++ - Entwicklung in SunOS mit SPARCStation 20s und Sun IPX durchführten. Unsere Codebasis befand sich in von NFS gemounteten Verzeichnissen. Ursprünglich haben wir die Versionierung von Kopierordnern durchgeführt , aber irgendwann sind wir zu SCCS gewechselt, und einige Teams haben begonnen, RCS zu verwenden .
1995 wechselte ich zu einer anderen Firma mit über 80 Entwicklern, die in New York, London und Hongkong C / C ++ -Entwicklungen durchführten. Wir haben ClearCase mit dem Multi-Site-Add-On verwendet, um die Entwicklungsumgebung zu verwalten.
ClearCase war gut darin, die Codebasis zwischen Standorten zu synchronisieren, aber zu der Zeit war fast ein Vollzeitadministrator erforderlich, um die Dinge am Laufen zu halten. Es war auch viel langsamer, da ClearCase Dateien in einem virtuellen Dateisystem präsentiert, wobei eine Konfiguration Versionen von Verzeichnissen und Dateinamen mit Platzhaltern basierend auf Verzweigungen, Zeit und / oder Tags angibt. In einem pathologischen Fall könnte man für jede einzelne Datei eine andere Version angeben.
quelle