System for samtidige versjoner

Systemprogramvare for samtidige
versjoner
SjangerVersjonskontroll
UtviklerCVS-teamet
Dato for første versjon19. november 1990
Siste versjon1.11.23 (8. mai 2008)
Siste  beta1.12.13 (28. september 2005)
OperativsystemMultiplattform
SpråkC.
TillatelseGNU General Public License, versjon 1 (eller nyere)
( gratis lisens )
Nettstedwww.nongnu.org/cvs/

Concurrent Versions System ( CVS ), også kjent som Concurrent Versioning System , er et programvaresystem som har blitt populært i den frie programvareverdenen og distribuert under GNU General Public License , som implementerer et versjonskontrollsystem .

Programmet holder oppdatert alt arbeidet og endringene som er gjort i et sett med filer , typisk implementeringen av en programvare under utvikling , og lar dermed mange utviklere (potensielt fjernt) samarbeide i team i utviklingen av kildekoden ved å få tilgang til ressursene til dem. tilgjengelig samtidig eller uten å skape konflikter i endringer i samme programvare.

Historie

CVS ble utviklet fra et versjonskontrollsystem kalt Revision Control System (RCS), som fortsatt er i bruk, som administrerer individuelle filer, men ikke hele prosjektet. Dick Grune har gitt noen historiske CVS-notater på nettstedet sitt:

( NO )

«Jeg opprettet CVS for å kunne samarbeide med elevene mine Erik Baalbergen og Maarten Waage om ACK (Amsterdam Compiler Kit) C-kompilatoren. Vi tre hadde vidt forskjellige tidsplaner (en student var jevnlig 9-5 arbeidere, den andre var uregelmessig, og jeg kunne bare jobbe med prosjektet om kveldene). Prosjektet deres gikk fra juli 1984 til august 1985. CVS ble opprinnelig kalt cmt, av den åpenbare grunn at det tillot oss å forplikte versjoner uavhengig."

( IT )

"Jeg opprettet CVS for å kunne samarbeide med elevene mine Erik Baalbergen og Maarten Waage om C-kompilatoren til ACK (Amsterdam Compiler Kit). Vi tre hadde vidt forskjellige timer (en student var en konstant arbeider fra 9 til 17, den andre var uregelmessig, og jeg kunne bare jobbe med prosjektet om kvelden). Prosjektet deres gikk fra juli 1984 til august 1985. CVS ble opprinnelig kalt cmt, av den åpenbare grunn at det tillot oss å distribuere versjoner uavhengig."

( Dick Grune , Concurrent Versions System CVS [1] )

Koden ble offentlig distribuert på mod.sources- nyhetsgruppen 23. juni 1986 . Du kan fortsatt se det originale innlegget på usenet på Google Groups.

Koden som endelig utviklet seg til den nåværende versjonen av CVS begynte med Brian Berliner i april 1989 , senere med innspill fra Jeff Polk og mange andre bidragsytere. Brian Berliner skrev en nettside som introduserte sine forbedringer til CVS-programmet som beskriver hvordan verktøyet ble utvidet og brukt internt av Prisma, en frilansutvikler som jobber med SunOS - kjernen , og ble distribuert til fellesskapet under GPL . [2]

I dag administrerer en gruppe frivillige CVS-koden. Utviklingen av versjonen av CVS for Microsoft Windows har delt seg inn i et prosjekt kalt CVSNT og har vært betydelig mer aktiv i å utvide systemets funksjonssett, så mye at den har overført disse endringene til UNIX -plattformen under navnet CVSNT.

Forholdet mellom CVS og GNU -prosjektet kan virke noe tvetydig: GNU-nettstedet distribuerer programmet, og identifiserer det som "GNU-pakke" på én side og "annet GPL-lisensiert prosjekt" (andre lisensierte prosjekter GPL) på en annen. På FTP - området ligger programmet i katalogen /non-gnu/.

En rekke nøkkelutviklere som jobber med CVS er nå ansvarlige for SVN ( Subversion )-prosjektet, som ble utgitt i første halvdel av 2004 , og som har som mål å erstatte CVS for å overvinne noen av begrensningene.

Terminologi

CVS-terminologi angir et enkelt prosjekt (sett med relaterte filer) kontrollert av CVS som en modul . En CVS-server kan overvåke mange moduler og lagre alle moduler i sitt eget depot . Å kopiere et skjema som er lastet ned fra serveren via en klient kalles en arbeidskopi eller sandkasse .

Funksjoner

CVS bruker en typisk klient-server- arkitektur : en server lagrer den gjeldende versjonen av et prosjekt og dets historie, og klienten kobler seg til serveren for å sjekke den nyeste programvareversjonen som er tilgjengelig og bruke sistnevnte. Vanligvis kobles klient og server sammen over et LAN eller Internett , men klienten og serveren kan begge kjøre på samme maskin, hvis CVS har i oppgave å spore versjonshistorikken til et prosjekt med kun en lokal utvikler.

Serverprogramvare kjører normalt på Unix (selv om det også finnes en CVS-server på Windows NT ), mens CVS-klienter kan kjøre på et større antall operativsystemer .

Funksjoner

Mange kunder kan publisere kopier av prosjekter samtidig. Når de så registrerer endringene, prøver serveren å slå dem sammen. Hvis dette systemet svikter, for eksempel fordi to klienter har forsøkt å endre samme linje i en bestemt fil, nekter serveren den andre registreringsoperasjonen og informerer klienten om konflikten, som vil løses manuelt av brukeren. Hvis loggen er vellykket, økes versjonsnumrene til alle de involverte filene automatisk, og CVS-serveren skriver en brukeroppgitt beskrivelseslinje, dato og forfatternavn i loggfilen sin .

Klienter kan også sammenligne forskjellige versjoner av filer, be om en fullstendig endringshistorikk eller verifisere et historisk fotografi av prosjektet fra en bestemt dato og revisjonsnummer. Mange åpen kildekode -prosjekter tillater "anonym lesetilgang", en funksjon som var banebrytende for OpenBSD . Dette betyr at klienter kan verifisere og sammenligne versjoner via mellomrom eller ganske enkelt med det publiserte passordet (for eksempel "anoncvs"); kun for registrering av en endring kreves en personlig konto og et passord.

Klienter kan også bruke oppdateringskommandoen for å justere sine lokale kopier med den nyeste versjonen på serveren. Dette eliminerer behovet for gjentatte nedlastinger av hele prosjektet. CVS kan også opprettholde flere "grener" ( flertallsgrener ) av et prosjekt. For eksempel kan en distribuert versjon av prosjektet danne en gren, som brukes til å fikse feil, mens en versjon under pågående utvikling, med flere endringer og nye funksjoner, danner en egen gren. Den bruker delta-komprimering for effektiv lagring av forskjellige versjoner av samme fil.

Merknader

  1. ^ Dick Grune , Concurrent Versions System CVS , på dickgrune.com . Hentet 20. februar 2017 ( arkivert 21. januar 2013) .
  2. ^ Brian Berliner, CVS II: Parallelizing Software Development (1990) , på citeseer.ist.psu.edu (arkivert fra originalen 9. september 2004) .

Bibliografi

Relaterte elementer

Eksterne lenker