Wann wurde die Quellcodeverwaltung erfunden?

20

Ich kenne viele Versionskontrollsysteme: CVS, SVN, TFS usw.

Ich habe nach dem allerersten "Revisions- / Versionskontrollsystem" gegoogelt und verschiedene widersprüchliche Antworten gesehen.

Wann wurde die Quellcodeverwaltung erfunden? Wer hat es erfunden? Wie wurde es genannt?

P. Brian Mackey
quelle
18
Es wurde tatsächlich mehrmals erfunden, aber sie haben den Quellcode immer wieder verloren.
Reactgular
4
Es hängt davon ab, wie Sie "Quellcodeverwaltung" definieren, aber das IEBUPDTE von IBM stammt aus dem Jahr 1962 und war wohl das früheste VCS.
Ross Patterson
2
Wenn Versionierungsdateisysteme der Revisionskontrolle gleichgestellt werden können, geht dies auf die 1960er Jahre zurück.
Mouviciel
@ RossPatterson, dieser Kommentar muss wirklich eine Antwort sein.
John R. Strohm

Antworten:

14

Hier ist eine ziemlich anständige Zeitleiste der Hauptakteure in Videoform (ohne Ton).

Es deutet darauf hin, dass SCCS mit einem Vorsprung von ungefähr 9 Jahren das erste war.

http://i.stack.imgur.com/wcAWD.png

Es gibt jedoch eine Menge zu vermissen, wie dieser Blog und die daraus resultierenden Kommentare belegen .

pdr
quelle
7
Das Originalpapier zu SCCS erwähnt keine anderen Systeme und scheint darauf hinzudeuten, dass es sich selbst um eine Terminologie handeln musste. Allein aus dieser Quelle scheint es vor 1972/73 kein Versionskontrollsystem gegeben zu haben.
Martijn Pieters
1
Die Benennung eines Quellcodeverwaltungssystems als "Quellcodeverwaltungssystem" weist in der Tat darauf hin, dass es sich um die erste Instanz von etwas handelte, die später zu einer Softwarekategorie wurde.
Ingo
@MartijnPieters Rochkind erkennt Browns CLEAR am Ende des Dokuments an. Einfach ausgedrückt, SCCS auf OS / MVT aufbauend, konnte er IEBUPDTE nicht übersehen.
Ross Patterson
@ RossPatterson: Weder CLEAR noch IEBUPDTE sind Versionsverwaltungssysteme. CLEAR wird für die Idee der Deltas gutgeschrieben, es heißt ausdrücklich in dem Papier, dass es keine anderen Ähnlichkeiten gibt.
Martijn Pieters
3

1981 habe ich einen Sommerjob bei Charter Information in Austin, TX, absolviert. Sie waren früher Commercial Information Corporation von Woburn, MA. Sie führten ein Xerox Sigma 6 aus, das vor Ort auf ein Sigma 7 aktualisiert worden war. Sie verwendeten zur Quellcodeverwaltung ein Programm namens SPUD (Source Program Update). Es war bandbasiert.

Ich habe routinemäßig das "zweihundertjährige SPUD-Band" eingelegt und an einem Mod-Deck für ein Stück Code auf diesem Band gearbeitet. Es wurde das "zweihundertjährige SPUD-Band" genannt, weil es 1976 geschrieben wurde. Sie hatten ältere Bänder, was darauf hinweist, dass SPUD weiter zurückging als 1976.

Während meines Studiums an der UT Austin (1973-1981) bin ich auf MODIFY und UPDATE gestoßen, zwei Quellcodeverwaltungsprogramme der Control Data Corporation für den CDC 6600 und spätere Großrechner. Ich weiß nicht, wann sie zum ersten Mal herauskamen, aber ich vermute, dass sie nicht lange nach der 6600 herauskamen, die Ende der 1960er Jahre herauskam (wenn mir die Erinnerung hilft).

Ich vermute, dass IBM etwas gut hatte, bevor es irgendjemand anderes getan hat, aber ich habe keinerlei Kenntnis der IBM-Mainframe-Geschichte, und ich mag es so.

John R. Strohm
quelle
Die Befehle CDC MODIFY und UPDATE waren Dienstprogramme zum Anwenden von Softwareupdates, nicht zum Verwalten von Änderungen an Ihrer eigenen Software, soweit ich das beurteilen kann. Siehe apps.dtic.mil/dtic/tr/fulltext/u2/a208003.pdf , in dem die Dienstprogramme auf Seite 52 (im PDF 61) und computinghistory.org.uk/downloads/39256 beschrieben sind Software-Veröffentlichungsmaterialien zu Nr. 4 (PDF Nr. 16) im UPDATE-Format.
Martijn Pieters
Ich glaube, dass Xerox SPUDS (Source Program Update Disk System) ein ähnliches Paket war.
Martijn Pieters
2

Das IEBUPDTE- Programm, das ursprünglich für das OS / 360-System von IBM entwickelt wurde, stammt aus dem Jahr 1962 und ist 10 Jahre älter als SCCS . Der Zweck besteht darin, eine Reihe von Änderungen auf eine Reihe von Eingabequellprogrammen anzuwenden und eine Reihe von geänderten Quellprogrammen zu erstellen. Der gesamte Quellcode wurde entweder als "Stapel" von Lochkarten mit 80 Spalten oder als Dateien verwaltet, die diesen ähnelten. Diese Quellprogramm - Decks hatten "Sequenznummern" in einem festen Satz von Spalten auf jeder Zeile oder Karte ( COBOLin den Spalten 1-6 als links angegeben, in den Spalten 73-80 als rechts angenommen. Die Folgenummern mussten zeilenweise erhöht werden, aber der größte Teil des Quellcodes wurde um 10, 100 oder 1000 Sekunden erhöht, um Platz im ganzzahligen Raum zwischen zwei Zeilen für spätere Einfügungen zu schaffen.

Ein typisches IEBUPDTE-Steuerungsdeck könnte folgendermaßen aussehen:

./ CHANGE NAME=PROG001
         PROGRAM XYZZY                                                  00005000
./ DELETE SEQ1=9000,SEQ2=15000
         DO I=1,10                                                      00026000
./ CHANGE NAME=PROG002
         J=256                                                          00092000
./ ENDUP

Dies würde zwei Quelldateien ändern, "PROG001" und "PROG002", wobei die Zeilennummer "5000" (häufig die fünfte Zeile nach der "Tausendernummer" -Praxis) und die Zeilen 9000 bis 15000 in PROG001 und die Zeile 92000 in PROG002 ersetzt werden .

Auf seiner einfachsten Ebene ist dies eine Definition der Quellcodeverwaltung. Unix-Leute würden das als das erkennen, was Patch tut, aber explizite Nummerierung anstelle von impliziten verwenden. Es war üblich, Sätze von Steuerkonsolen nacheinander auf ein Eingabeprogramm anzuwenden und diese Sätze als zusammenhängende Festplattendatei (ein partitionierter Datensatz ) zu speichern , die eine starke Ähnlichkeit mit den Änderungsprotokollen aufweist, die CVS und RCS in ihren ,vDateien speichern . IBM lieferte häufig Code-Patches mit der Bezeichnung Program Temporary Fixes (PTFs) in Form von großen Steuerungssätzen, mit denen Dateien im Rahmen eines einzigen zugehörigen Änderungssatzes geändert wurden, den Subversion- und Git- Benutzer kennen.

Ross Patterson
quelle
Ist IEBUDTE nicht ein Software-Update-System? Es ist ähnlich wie Patch, also bestenfalls eine Komponente eines Versionskontrollsystems. Es gibt keine grafische Darstellung der zeitlichen Veränderungen, soweit ich das beurteilen kann.
Martijn Pieters
Yup, IEBUPDTEist ähnlich wie patch.
Ross Patterson