CVS

CVS
Sorts centraliserat versionskontrollsystem [d]
Utvecklaren CVS-teamet [d]
Skrivet i C [4]
Operativ system Unix-liknande operativsystem
Första upplagan 19 november 1990 [1]
senaste versionen 1.11.23 [2] (8 maj 2008 ) ( 2008-05-08 )
betaversion
Licens GNU General Public License, version 1.0 eller senare [d] [5]
Hemsida nongnu.org/cvs/ ​(  engelska)

CVS ( eng.  Concurrent Versions System  - simultaneous versions system ) är ett centraliserat versionskontrollsystem som var populärt på 1990-talet - början av 2000-talet. Håller en historik över ändringar av en specifik uppsättning filer, vanligtvis programvarukällkod , och gör det lättare för en grupp människor att arbeta tillsammans i samma projekt. Distribueras under villkoren i GNU GPL .

Sedan slutet av 2000-talet har aktiv utveckling av systemet avbrutits (den senaste versionen släpptes i maj 2008 ), endast mindre korrigeringar görs i källkoden [6] . Anses vara föråldrat [7] [8] [9] system.

Grundläggande begrepp

CVS använder en klient-server- arkitektur . Vanligtvis är klienten och servern anslutna över ett lokalt nätverk eller över Internet , men kan också köras på samma maskin om du vill behålla ett lokalt projekts versionshistorik. Serverprogramvara körs vanligtvis på Unix (även om det finns en CVS-server för Windows NT ), medan CVS-klienter är tillgängliga på alla populära operativsystem .

Servern lagrar de aktuella versionerna av projektet och historiken för ändringar i ett speciellt arkiv ( repository ), och klienten ansluter till det för att få den version den behöver eller skriva en ny. Efter att ha fått den version som krävs från servern ( utcheckning ) skapar klienten en lokal kopia av projektet (eller en del av det) - den så kallade arbetskopian. Efter att nödvändiga ändringar har gjorts i filerna i arbetskopian skickas de till servern ( incheckning ).

Flera kunder kan arbeta med kopior av ett projekt samtidigt. När de skickar in resultaten försöker servern slå samman sina ändringar i arkivet. Om detta misslyckas, till exempel när två klienter har ändrat samma rader i en viss fil, kommer servern inte att acceptera ändringarna från den senaste incheckningen, och kommer att rapportera konflikten till klienten, som måste korrigeras manuellt. Om incheckningen lyckas, ökas versionsnumren för alla berörda filer automatiskt, och servern skriver kommentaren, datumet och användarnamnet till sin logg.

Kunder kan också jämföra olika versioner av filer, begära en fullständig ändringshistorik eller få en historisk bild av ett projekt efter ett specifikt datum eller versionsnummer. Många projekt med öppen källkod tillåter anonym läsåtkomst, vilket först introducerades i OpenBSD . Detta innebär att klienter kan fråga och jämföra filversioner utan lösenord; endast incheckningsoperationer som ändrar data i förvaret kräver ett lösenord.

Klienter kan också använda kommandot update för att synkronisera den lokala kopian av projektet med information på servern , vilket undviker att ladda ner hela projektet på nytt.

CVS kan också innehålla olika grenar av ett projekt. Till exempel kan en stabil version av ett projekt vara på en enskild gren som bara  innehåller buggfixar, medan aktiv utveckling kan vara på en parallell gren som inkluderar betydande förbättringar eller ändringar sedan lanseringen av den stabila versionen.

CVS använder deltakomprimering för att effektivt lagra olika versioner av samma fil.

Grundläggande begrepp

Projekt i CVS lagras som moduler, en modul är en uppsättning projektfiler. En CVS-server kan betjäna flera moduler; alla moduler lagras i arkivet. En lokal kopia av en modul som erhålls med en CVS-klient kallas en arbetskopia.

utcheckningsoperation -  extrahera hela modulen från CVS och skapa en arbetskopia; incheckning  - begå lokala ändringar i förvaret. Uppdateringsoperationen  uppdaterar det lokala projektet från CVS .

Branch ( engelsk  gren ) - en oberoende riktning för projektändring, som kan innehålla ett antal på varandra följande versioner; en gren kan utvecklas parallellt med andra grenar; huvudgrenen ( engelsk  huvudstam eller HEAD ) finns alltid där.

Revision ( revision ) är en av versionerna av en enda fil.

En av versionerna av hela produkten är en "release" ( release , termen "version" används inte alls i CVS). En speciell tagg ( tagg ) är kopplad till versionen , en tagg kan även tilldelas en separat fil, men detta görs sällan, vanligtvis markeras en samling filer av vissa versioner (versioner) med en tagg.

Historik och status

CVS är en utveckling av ett tidigare versionskontrollsystem som kallas Revision Control System (RCS), som fortfarande används för att arbeta med enskilda filer, men inte hela projekt. Dick Grun gav [10] en kort historisk bakgrund om CVS på sin sida:

CVS skapades för att kunna arbeta med två av mina elever på C -kompilatorn ACK (Amsterdam Compiler Kit). Vi tre hade ett nästan inkompatibelt schema (en student hade fast anställning, den andra dök upp oregelbundet och jag kunde bara jobba med projektet på kvällarna). Deras projekt varade från juli 1984 till augusti 1985 . CVS kallades ursprungligen cmt , på grund av att det gjorde det möjligt för oss att begå versioner oberoende (från engelskan commit  - fix, commit).

Koden såg första gången dagens ljus på mod.sources-konferensen den 23 juni 1986 .

Koden som så småningom blev den nuvarande versionen av CVS startades med Brian Berliner i april 1989, med efterföljande tillägg från Jeff Polk och andra. Brian Berliner skrev [11] ett dokument som beskriver de förbättringar som CVS förvärvat under dess intern användning hos Prisma, en tredjepartsutvecklare av SunOS -kärnan , varefter Brian släppte den till allmänheten under GPL .

Projektet stöds av en grupp volontärer. Det är anmärkningsvärt att versionen av CVS för Microsoft Windows , separerad i ett separat CVSNT- projekt , aktivt utökar systemets möjligheter, till och med porterar ändringar tillbaka till Unix under CVSNT-namnet.

Relationen mellan CVS och GNU-projektet kan vara tvetydig: på en sida distribuerar GNU-webbplatsen programmet som ett "GNU-paket" och på en annan listas CVS under "ett annat GPL-projekt". På FTP-servern finns programmet i /non-gnu/ -katalogen .

Nackdelar

Anteckningar

  1. Innehållet i /ccvs/NEWS
  2. NYHETER 1.11.23 . Arkiverad från originalet den 27 december 2021. Hämtad 14 april 2022.
  3. Pris D.R. Concurrent Versions System - Nyheter CVS Feature Version 1.12.13 släppt!  (engelska) - 2005.
  4. CVs Open Source Project på Open Hub: Languages-sidan - 2006.
  5. https://cvs.savannah.nongnu.org/viewvc/cvs/ccvs/README?view=markup
  6. [https://web.archive.org/web/20181116130105/http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/ChangeLog Arkiverad 16 november 2018 på Wayback Machine [källor] Logga över / cvs/ccvs/ChangeLog]
  7. CVS är ute, Subversion finns i Arkiverad 25 mars 2010.  (engelska) Red Hat magazine, augusti 2005
  8. CVS - sourceforge Arkiverad 10 juni 2010.
  9. CVS-versionskontrollsystem . Hämtad 25 juli 2009. Arkiverad från originalet 8 juli 2010.
  10. Samtidiga versioner System CVS . Hämtad 12 januari 2005. Arkiverad från originalet 7 december 2006.
  11. CiteSeerX - CVS II: Parallellisering av mjukvaruutveckling . Hämtad 12 januari 2005. Arkiverad från originalet 5 juni 2007.
  12. CVS-utvärdering i Mercurial-boken Arkiverad 7 september 2013 på Wayback Machine .

Länkar