CVS | |
---|---|
Tyyppi | keskitetty versionhallintajärjestelmä [d] |
Kehittäjä | CVS-tiimi [d] |
Sisään kirjoitettu | C [4] |
Käyttöjärjestelmä | Unix-tyyppinen käyttöjärjestelmä |
Ensimmäinen painos | 19. marraskuuta 1990 [1] |
uusin versio | 1.11.23 [2] (8. toukokuuta 2008 ) |
beta-versio |
|
Lisenssi | GNU General Public License, versio 1.0 tai uudempi [d] [5] |
Verkkosivusto | nongnu.org/cvs/ ( englanti) |
CVS ( eng. Concurrent Versions System - simultaneous versions system ) on keskitetty versionhallintajärjestelmä, joka oli suosittu 1990-luvulla ja 2000-luvun alussa. Säilyttää tiettyjen tiedostojen, yleensä ohjelmiston lähdekoodin , muutoshistorian ja helpottaa ryhmän työskentelyä yhdessä saman projektin parissa. Jaetaan GNU GPL :n ehtojen mukaisesti .
2000-luvun lopulta lähtien järjestelmän aktiivinen kehittäminen on lopetettu (uusin versio julkaistiin toukokuussa 2008 ), lähdekoodiin on tehty vain pieniä korjauksia [6] . Pidetään vanhentuneena [7] [8] [9] järjestelmänä.
CVS käyttää asiakas-palvelin- arkkitehtuuria . Tyypillisesti asiakas ja palvelin ovat yhteydessä paikallisen verkon tai Internetin kautta , mutta ne voivat myös toimia samalla koneella, jos haluat säilyttää paikallisen projektin versiohistorian. Palvelinohjelmisto toimii yleensä Unixissa (vaikka Windows NT :lle on CVS-palvelin ), kun taas CVS-asiakkaat ovat saatavilla kaikissa suosituissa käyttöjärjestelmissä .
Palvelin tallentaa projektin nykyiset versiot ja muutoshistorian erityiseen arkistoon ( repository ), ja asiakas muodostaa yhteyden siihen saadakseen tarvitsemansa version tai kirjoittaakseen uuden. Saatuaan vaaditun version palvelimelta ( check-out ), asiakas luo projektista (tai sen osasta) paikallisen kopion - ns. työkopion. Kun työkopiossa oleviin tiedostoihin on tehty tarvittavat muutokset, ne lähetetään palvelimelle ( check-in ).
Useat asiakkaat voivat työstää projektin kopioita samanaikaisesti. Kun he lähettävät tulokset, palvelin yrittää yhdistää niiden muutokset yhteen arkistossa. Jos tämä epäonnistuu, esimerkiksi kun kaksi asiakasta ovat vaihtaneet samoja rivejä tietyssä tiedostossa, palvelin ei hyväksy muutoksia viimeisimmästä sisäänkirjautumisesta ja ilmoittaa ristiriidan asiakkaalle, joka on korjattava manuaalisesti. Jos sisäänkirjautuminen onnistuu, kaikkien vaikuttavien tiedostojen versionumerot kasvavat automaattisesti ja palvelin kirjoittaa kommentin, päivämäärän ja käyttäjänimen lokiinsa.
Asiakkaat voivat myös vertailla eri versioita tiedostoista, pyytää täydellistä muutoshistoriaa tai saada historiallisen kuvan projektista tietyn päivämäärän tai versionumeron mukaan. Monet avoimen lähdekoodin projektit mahdollistavat anonyymin lukuoikeuden, joka esiteltiin ensimmäisen kerran OpenBSD :ssä . Tämä tarkoittaa, että asiakkaat voivat hakea ja vertailla tiedostoversioita ilman salasanaa; vain sisäänkirjautumistoiminnot, jotka muokkaavat arkiston tietoja, vaativat salasanan.
Asiakkaat voivat myös käyttää päivityskomentoa synkronoidakseen projektin paikallisen kopion palvelimella olevien tietojen kanssa , mikä estää koko projektin uudelleenlataamisen.
CVS voi sisältää myös projektin eri haaroja. Esimerkiksi projektin vakaa versio voi olla yhdellä haaralla , joka sisältää vain virheenkorjauksia, kun taas aktiivinen kehitys voi olla rinnakkaisessa haarassa, joka sisältää merkittäviä parannuksia tai muutoksia vakaan version julkaisun jälkeen.
CVS käyttää delta-pakkausta tallentaakseen tehokkaasti saman tiedoston eri versioita.
Projektit CVS:ssä tallennetaan moduuleina, moduuli on joukko projektitiedostoja. CVS-palvelin voi palvella useita moduuleja; kaikki moduulit tallennetaan arkistoon. CVS-asiakkaalla saatua moduulin paikallista kopiota kutsutaan työkopioksi.
check-out- toiminto - koko moduulin purkaminen CVS:stä ja työkopion luominen; check-in - paikallisten muutosten tekeminen arkistoon. Päivitystoiminto päivittää paikallista projektia CVS:stä.
Branch ( englanniksi haara ) - itsenäinen projektin muokkaussuunta, joka voi sisältää useita peräkkäisiä versioita; haara voi kehittyä rinnakkain muiden haarojen kanssa; päähaara ( englanniksi main trunk tai HEAD ) on aina siellä.
Versio ( versio ) on yksi yksittäisen tiedoston versioista.
Yksi koko tuotteen versioista on "julkaisu" ( julkaisu , termiä "versio" ei käytetä lainkaan CVS:ssä). Versioon on liitetty erityinen tagi ( tag ) , tunniste voidaan liittää myös erilliseen tiedostoon, mutta näin tehdään harvoin, yleensä tunnisteella merkitään tiedostokokoelma tietyistä versioista (versioista).
CVS on evoluutio aikaisemmasta versionhallintajärjestelmästä nimeltä Revision Control System (RCS), jota käytetään edelleen yksittäisten tiedostojen, mutta ei kokonaisten projektien, kanssa työskentelemiseen. Dick Grun esitti [10] lyhyen historiallisen taustan CVS:stä sivullaan:
CVS luotiin, jotta voisin työskennellä kahden opiskelijani kanssa C - kääntäjän ACK:n (Amsterdam Compiler Kit) parissa. Meillä kolmella oli melkein yhteensopimaton aikataulu (yhdellä opiskelijalla oli vakituinen työ, toinen ilmestyi epäsäännöllisesti, ja sain työskennellä projektin parissa vain iltaisin). Heidän projektinsa kesti heinäkuusta 1984 elokuuhun 1985 . CVS:n nimi oli alun perin cmt , koska se antoi meille mahdollisuuden sitoa versioita itsenäisesti (englannin sanasta commit - fix, commit).
Koodi näki ensimmäisen kerran päivänvalon mod.sources-konferenssissa 23. kesäkuuta 1986 .
Koodi, josta tuli lopulta CVS:n nykyinen versio, käynnistettiin Brian Berlinerin kanssa huhtikuussa 1989, minkä jälkeen Jeff Polk ja muut lisäsivät sitä. Brian Berliner kirjoitti [11] dokumentin, jossa hahmotellaan CVS:n sisäisen käytön aikana hankittuja parannuksia Prismassa, kolmannen osapuolen SunOS -ytimen kehittäjänä , minkä jälkeen Brian julkaisi sen yleisölle GPL :n alla .
Hanketta tukee joukko vapaaehtoisia. On huomionarvoista, että erilliseksi CVSNT- projektiksi erotettu CVS for Microsoft Windows laajentaa aktiivisesti järjestelmän ominaisuuksia, jopa siirtämällä muutokset takaisin Unixiin CVSNT-nimellä.
CVS:n suhde GNU-projektiin voi olla epäselvä: yhdellä sivulla GNU-sivusto jakaa ohjelman "GNU-pakettina" ja toisella CVS on listattu "toisen GPL-projektin" alla. FTP-palvelimella ohjelma sijaitsee /non-gnu/ -hakemistossa .
Versionhallintajärjestelmät ( luokka ) | |
---|---|
Vain paikallinen | |
Asiakas-palvelin | |
Hajautettu | |
URI- järjestelmät | |
---|---|
Virallinen | |
epävirallinen |