Come ha funzionato il controllo delle versioni sui microcomputer del giorno negli anni '80 e '90?


31

Sono curioso di sapere come i team di programmatori in genere hanno gestito lo sviluppo del loro software negli anni '80 e nei primi anni '90. Tutto il codice sorgente era semplicemente memorizzato su un computer su cui tutti lavoravano, oppure il codice sorgente veniva passato e copiato manualmente tramite floppy e unito manualmente, oppure utilizzavano effettivamente i sistemi di controllo delle revisioni su una rete (ad esempio CVS) come facciamo adesso? O forse veniva usato qualcosa come un CVS offline?

Oggi tutti dipendono dal controllo del codice sorgente ... è un gioco da ragazzi. Ma negli anni '80, le reti di computer non erano così facili da configurare, e cose come le migliori pratiche venivano ancora individuate ...

So che negli anni '70 e '60 la programmazione era piuttosto diversa, quindi il controllo di revisione non era necessario. Ma è negli anni '80 e '90 che le persone hanno iniziato a utilizzare i computer per scrivere il codice e le applicazioni hanno iniziato ad aumentare di dimensioni e portata, quindi mi chiedo come le persone abbiano gestito tutto ciò allora.

Inoltre, in che modo differisce tra le piattaforme? Dire Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari

Nota: sto parlando principalmente di programmazione su microcomputer del giorno, non di grandi macchine UNIX.


3
RCS è stato inizialmente rilasciato nel 1982.
5gon12eder,

1
Ma quante persone l'hanno usato? RCS è stato realizzato da AFAIK per macchine Unix e unix-like che non funzionavano con microcomputer.
9a3eedi,

2
Avevamo sistemi in rete. Semplicemente non è stato impostato su tcp / ip, ce n'erano altri, anche come decnet. La condivisione dei file era disponibile in diversi protocolli. E i team hanno fatto lo sviluppo sui mini anche per i micro, anche se alcuni piccoli sviluppatori indipendenti (non sui team), hanno fatto solo i backup invece della versione usando il controllo formale. Alcuni potrebbero emulare il controllo della versione con rigorosi backup manuali.
Erik Eidt,

2
Lo abbiamo fatto con molta attenzione, principalmente in wetware, perché quello che pensi come controllo di versione non esisteva sulle piattaforme che menzioni.
Blrfl,

2
Nel mio caso, nei primi anni '80 abbiamo usato mazzi di schede perforate per mini-computer. A volte, salveremmo i deck di codice sorgente negli armadi dei file delle schede perforate.
Gilbert Le Blanc,

Risposte:


22

Innanzitutto, quando i microcomputer sono usciti per la prima volta, il software è stato per lo più scritto su sistemi Unix o VMS e "cross-compilatore / assemblato" sul sistema di destinazione. Questi sistemi informatici erano spesso multiutente con molti terminali e avevano sistemi di controllo con codice sorgente come SCCS .

La rete era un'opzione per i microcomputer a partire dalla metà degli anni '80, spesso collegata a un sistema Unix come "file server" (forse usando semplicemente RS232 e Kermit per trasferire i file, con SCCS sul sistema Unix)

Vedi A History of Version Control di Eric Sink per avere una panoramica di come il sistema di controllo delle versioni è cambiato nel corso degli anni.

Ricordo di aver letto sul controllo del codice sorgente in "BYTE" alla fine degli anni '80, quindi a quel punto doveva essere stato utilizzato su "piccoli sistemi".

SourceSafe era ben noto alla metà degli anni '90 su Dos, Windows, ecc.

Questo link mostra un articolo sul PVC in esecuzione su PC dal 1994 , è alla versione 6.2, quindi era chiaramente in circolazione da qualche tempo, Wikipedia dice che risale al 1985 .


Tuttavia, i floppy disk numerati erano utilizzati dalla maggior parte dei programmatori che lavoravano su software di piccole dimensioni fino alla fine degli anni '90, per essere sostituiti con cartelle sul proprio disco rigido, facendo una copia del codice sorgente ogni giorno.

Ricordo di aver lavorato su un progetto porting di software da Unit a Windows NT 3.5. I programmatori che sanno come programmare per Windows spesso non avevano nemmeno sentito parlare del controllo del codice sorgente in quel momento.


Questa sequenza temporale è tratta da un post sul blog di codicesoftware , vendono Plastic SCM, tuttavia la panoramica della storia di altri sistemi sembra ragionevole, alcuni sistemi più vecchi prima che RCS rimanga dell'immagine.

Cronologia della cronologia dei controlli di versione


1
quando ho iniziato a lavorare stavo usando VSS .. mi piace il commento di benvenuto all'inferno . Ricordo di essere stato chiesto dal mio capo squadra se varrebbe la pena cambiare per forza ... diavolo sì!
Draeron,

@draeron, ho scoperto che il VSS era OK se non ti aspettavi di poter unire i rami E si trovava su un file server stabile. Una società per cui ho lavorato lo aveva su un server con chip RAM difettosi, quindi continuavo a corrompere il database! Comunque dammi la forza invece ogni giorno della settimana ....
Ian

"Welcome to hell" potrebbe valere anche per Clearcase ... brivido
Andrew Kennan,

13

Questo probabilmente non è rappresentativo per l'industria dei giochi in generale, ma ha funzionato bene nella nostra piccola società di giochi. Non ha mai lavorato con software aziendali, che probabilmente aveva altri requisiti.

Dalla metà degli anni '80 alla metà degli anni '90 ho spesso usato un numero di versione alla fine del nome del file, ad esempio "game.003". All'epoca stavo programmando il 90% in assembler e tutto il codice era in un unico enorme file, possibilmente con uno o due include, dove avrei dovuto aggiornare manualmente il numero di versione quando le cose cambiano. Incrementerei il numero solo dopo aver avuto una versione stabile che ero sicuro di voler mantenere.

Questo alla fine è stato ridimensionato in qualche modo comodamente a circa 3 persone. Dopo di che abbiamo fatto crescere il team e abbiamo finito per avere un casino di file in tutto il luogo per circa un anno o giù di lì fino a quando non mi sono stufato di provare a rintracciare i cambiamenti delle singole persone e abbiamo iniziato a utilizzare Perforce tra il 1997 e il 1998.


6

Devi vederlo nel contesto delle infrastrutture comuni al momento. All'inizio degli anni '80 IBM ha rilasciato il "personal computer" e puoi prenderlo alla lettera. Il modo più comune per sviluppare applicazioni per un PC era un ragazzo che creava qualcosa e cercava di venderlo. Quindi un floppy per versione rilasciata sarebbe probabilmente comune. Puoi comprare delle belle etichette colorate e scrivere il nome del tuo prodotto e la versione su di esso. Per la maggior parte dei prodotti di successo di quei giorni hai conosciuto il nome del ragazzo che lo ha scritto.

Le reti sono state introdotte come componenti aggiuntivi. Le API del client sono state hackerate in DOS e le parti del server erano sistemi operativi dedicati e dedicati su una macchina separata. Tipicamente costoso (non per le masse) e fondamentalmente offre solo la condivisione di file e stampanti. Nel mondo dei PC le cose hanno iniziato a cambiare con l'introduzione di Windows for Workgroups e Windows NT. Ciò ha aperto molte possibilità. Il networking è stato infine integrato nell'ambiente che un programmatore conosceva e un programmatore di Windows poteva scrivere applicazioni in grado di comunicare tra loro sulla rete. Questa era la fine di NetWare come sistema operativo di rete dominante.

Presto sono comparsi diversi sistemi di controllo della versione con componenti client e server che è possibile installare facilmente su qualsiasi combinazione di macchine. Con plug-in per IDE e componenti client che supportano le opzioni della riga di comando che hanno consentito l'integrazione in un sistema di generazione.

Dopo che il web è decollato e l'accesso al PC a Internet è diventato onnipresente, hai il movimento open source e i sistemi di controllo del codice sorgente basati sul web. La cosa divertente è che, quando fu introdotto il PC, questo fu visto come un passaggio audace dal calcolo centralizzato al calcolo distribuito. Ma la definizione di centrale rispetto a distribuita è sfocata. Il cloud è la distribuzione definitiva o è solo il nuovo monster computer centrale che detiene tutta la potenza, proprio come una volta era il mainframe IBM?


1
Netware era ancora piuttosto dominante fino al lancio di Active Directory con win2k. Ci sono ancora molte cose che Netware ha fatto bene e che AD non può fare a meno di gravi problemi.
Wyatt Barnett,

Quindi quello che stai dicendo è che al momento le persone con microcomputer non utilizzavano il controllo del codice sorgente perché non ne avevano bisogno? cioè era solo un ragazzo che faceva programmi a casa sua in genere, quindi non c'è bisogno di condividere codice o fare fusioni?
9a3eedi,

2
@ 9a3eedi: sto dipingendo un quadro tipico. Le persone potrebbero aver sentito il bisogno, ma non era lì, quindi hai vissuto con i tuoi mezzi. In unione dici? Sembra un programma complicato. Di quanta memoria ha bisogno una simile bestia? Cosa rimarrà per il codice da unire? Posso scambiare floppy ma se la mia memoria è piena, dove devo andare ?! Fu solo quando la gente ebbe "tutta la memoria di cui avrebbero mai avuto bisogno" (come 640K) che ciò fosse persino possibile.
Martin Maat,

5

Negli anni '90 ho sicuramente usato il software per il controllo della versione. C'era SCCS e l'MPW di Apple aveva il controllo della versione integrato (proiettore). E penso di aver usato Projector intorno al 1992. In una società il sistema di controllo della versione era un grande armadio con floppy disk di ogni versione, preso una volta alla settimana.


SCCS non ha funzionato con i microcomputer. E non ha funzionato, perché si basava su una funzione puramente specifica del filesystem Solaris (nemmeno un generico Unix)
moscerino

1
@gnat - stai parlando dello stesso SCCS ? So di averlo usato su un Next a metà degli anni '90 e credo di averlo usato su vari Unice non Solaris alla fine degli anni '80. E l'articolo di Wikipedia collegato sembrerebbe concordare sul fatto che non era solo per Solaris.
kdgregory,

3
Abbastanza sicuro di aver usato SCCS su un 3B2-400 che eseguiva Sys V intorno al 1986. ISTR lo usava invece di RCS perché stavamo lavorando con un consulente la cui azienda lo usava sul loro sistema Xenix basato su Z8000 e aveva alcuni makefile che lo presumevano era usato.
TMN,

1
Ho sicuramente usato SCCS nel 1984 su Microsoft Xenix con processori Motorola 68000.
Charles E. Grant,

2
È vero che Linux non ha supportato SCCS negli anni '80. Del resto il supporto Linux per SCCS era carente anche negli anni 1880. SCCS e altri programmi (ad es. Lettore di news) negli anni '80 Unix usava open (2) per creare file di blocco consultivi che funzionavano se tutti gli utenti obbedivano allo stesso protocollo. Poiché SCCS ha creato blocchi consultivi, si potrebbe essere certi di rispettarli.
msw,

1

Il mio primo lavoro di programmazione estiva mentre ero ancora a scuola (credo che sarebbe stato circa 91) è stato implementare un sistema automatizzato di gestione delle versioni e di backup per la piccola azienda in cui lavoravo. Avevamo 3 PC collegati a un server netware e il proprietario si era finalmente stancato di gestire i conflitti di versione e di elaborare ciò che era necessario eseguire il backup su floppy, quindi abbiamo fatto lavorare gli sviluppatori sul proprio PC anziché direttamente nei file memorizzati sul server come avevano fatto fino ad ora, e ho scritto un sistema che ha tenuto tutti i loro file impostati per la lettura solo fino a quando non hanno eseguito un programma che ha verificato che nessun altro li stava usando, quindi ho registrato l'uso su un database centrale btrieve (un database relazionale con una semplice query api anziché full sql eseguito sul server netware). Un altro programma ha verificato le modifiche modificate e le ha copiate sul server,

Mentre questo sistema è stato creato su misura per la piccola azienda in cui ho lavorato, immagino che molti negozi simili abbiano avuto processi simili.


1

Per esperienza personale: lo sviluppo in rete MSS-DOS del 1985 era disponibile e troppo costoso. Per Apple e tutti i PC non MSDOS: niente. Ho usato T-lib ($ 50) dal 1987. Unix porti (SCCS), ho iniziato a filtrare verso il 1990, SourceSafe intorno al 1992.

Nel 1995, se non stavi usando un VCS, non eri serio.


Vorrei cambiare l'ultima frase in 1985 :( Ma poi ho lavorato in finanza
user151019

@mark: dubito fortemente che ciò fosse vero per lo sviluppo su PC. Le aziende hanno per lo più ignorato i PC fino a Windows 3.
david.pfx,

C'era molta programmazione DOS e all'86 stavo usando PVCS e i nuovi joiner avevano un background Unix ma, come notato, era nel settore bancario e finanziario, quindi avremmo potuto essere in vantaggio
user151019,

@mark: PVCS era sicuramente disponibile entro il 1985, ma troppo costoso per la maggior parte da usare ($ 000). Solo quelli che si spostano da sistemi più grandi e con soldi da bruciare lo userebbero.
david.pfx,

-1

Nel 1993-1995 ero con un gestore delle pensioni con 15 sviluppatori che sviluppavano C / C ++ in SunOS con SPARCStation 20s e Sun IPX. La nostra base di codice era nelle directory montate su NFS. Inizialmente stavamo eseguendo il Copying Versioning delle cartelle , ma a un certo punto ci siamo trasferiti in SCCS e alcuni team hanno iniziato a utilizzare RCS .

Nel 1995 mi sono trasferito in un'altra società con oltre 80 sviluppatori che hanno sviluppato C / C ++ a New York, Londra e Hong Kong. Abbiamo usato ClearCase con il componente aggiuntivo multi-sito per gestire l'ambiente di sviluppo.

ClearCase era bravo a sincronizzare la base di codice tra i siti, ma al momento richiedeva quasi un amministratore a tempo pieno per mantenere le cose in esecuzione. È stato anche molto più lento perché ClearCase presenta i file in un filesystem virtuale, con una configurazione che specifica le versioni di directory e nomi di file jolly basati su rami, tempo e / o tag. In un caso patologico, si potrebbe specificare ogni singolo file per avere una versione diversa.


1
La domanda richiede in particolare informazioni su microsistemi non unix, ma i sistemi che descrivi erano (al momento) disponibili solo su workstation unix.
Jules,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.