Luettelo versionhallintajärjestelmistä

Wikipediasta
Siirry navigaatioon Siirry hakuun

Versionhallintajärjestelmiä (engl. Version Control System, VCS) versiohallintaan on useita, sekä avoimen lähdekoodin että kaupallisia, suljettuja toteutuksia. Versionhallintajärjestelmät voivat keskittyä lähdekoodin versiohallintaan (engl. Source Control Management, SCM) tai ne voivat kattaa laajemmin ohjelmiston konfiguraatiohallinnan (engl. Software configuration management}, SCM).

Versiohallintaa kutsutaan useilla nimityksillä, joissa on päällekkäisyyksiä.[1]

Myös eräiden käyttöjärjestelmien tiedostojärjestelmä tukee läpinäkyvästi tiedostojen versiointia (engl. Versioning file system). Tässä ei ole niitä käsitelty.

Osa järjestelmistä on aloittanut suljettuna kaupallisena toteutuksena ja myöhemmin lähdekoodit on julkaistu.

Nykyinen suuntaus on kehittää hajautettuja versionhallintajärjestelmiä, joita edustavat Git, Mercurial ja Bazaar.

Järjestelmien luokittelu[muokkaa | muokkaa wikitekstiä]

Versionhallintajärjestelmät voidaan jakaa kolmeen sukupolveen seuraavasti:[2]

  1. yksittäiset tiedostot, ei verkottamista: RCS, SCCS
  2. useampia tiedostoja, keskitetyt palvelimet: CVS, Subversion
  3. muutosjoukkoja, hajautetut palvelimet: Git, GNU Bazaar, Mercurial

Ensimmäisen sukupolven versiohallintajärjestelmät käsittelivät tiedostoja yksi kerrallaan. Rinnakkaisuusmalli perustui lukituksiin, jolloin vain yksi henkilö pystyi muokkaamaan tiedostoa kerrallaan.[2]

Toinen sukupolvi osaa käsitellä useampia tiedostoja ja tukee verkottumista. Rinnakkaisuusmalli perustui muutoksien yhdistämiseen ennen tallettamista.[2]

Kolmas sukupolvi tukee muutosjoukkoja (engl. changeset), jossa muutokset ovat jakamattomia useamman tiedoston kattavia muutoksia: tietty muutos voi vaatia muutoksen useampaan tiedostoon yhtä aikaa eikä ole sallittua jakaa eri päivityksiin. Muutosten yhdistäminen (engl. merge) ja muutosten tallettamien (engl. commit) ovat erillisiä toimintavaiheita. Rinnakkaisuusmalli sallii tallettaa muutokset ensin ja päättää jälkikäteen yhdistämisestä.[2]

BitKeeper[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: BitKeeper

BitKeeper on BitMoverin kehittämä hajautettu versiohallintajärjestelmä, jonka kehityksen aloitti Larry McVoy.[3] BitKeeper käyttää hajautettua mallia, joka inspiroi projekteja kuten GNU Arch, Darcs ja Monotone.[4]

BitKeeper oli alkuun kaupallinen, mutta on julkaistu vuonna 2016 avoimen lähdekoodin Apache-lisenssillä.[5]

ClearCase[muokkaa | muokkaa wikitekstiä]

ClearCase on IBM Rationalin kaupallinen versionhallintajärjestelmä, jonka alkuperäinen kehittäjä Rational Software on nykyisin IBM:n omistuksessa. Varsinaisen versiohallinnan lisäksi ClearCase tarjoaa toimintoja myös työtilan, ohjelmistokoontien ja muutosten hallintaan. Järjestelmä on integroitavissa moniin ohjelmistonkehitysympäristöihin kuten Eclipseen, Visual Studioon, ja WebSphereen[6].

ClearCase on saatavissa seuraaville käyttöjärjestelmille: AIX, HP-UX, Linux, muut Unix-kaltaiset alustat, Solaris ja Windows.[7] Se integroituu natiivina myös saman tuoteperheen ClearQuest-virheenseurantajärjestelmään.

Codeville[muokkaa | muokkaa wikitekstiä]

Codeville oli Pythonilla toteutettu hajautettu versionhallintajärjestelmä.[8]

CVS[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: CVS

CVS perustuu Dick Grunen 1986 julkaisemista shell-skripteistä.[9] Myöhemmissä versioissa ei ole samaa koodia enää mutta algoritmit perustuvat samaan.[9]

CVS on niin sanottu toisen sukupolven versionhallintajärjestelmä.[2]

Darcs[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Darcs

Darcs on avoimen lähdekoodin hajautettu versionhallintajärjestelmä, joka on tehty Haskell-kielellä.[10]

Endevor[muokkaa | muokkaa wikitekstiä]

Endevor on CA Technologiesin versiohallintajärjestelmä IBM z/OS -suurtietokoneille.[11]

Fossil[muokkaa | muokkaa wikitekstiä]

Fossil on hajautettu versionhallintajärjestelmä, jossa on sisäänrakennettu bugiseurantaohjelma ja wiki.[12] Fossil käyttää SQLite-tietokantamoottoria.[12]

Git[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Git

Kun BitMover lakkautti kaupallisen BitKeeper-järjestelmänsä ilmaisversion keväällä 2005, Linus Torvalds aloitti Gitin kehityksen.[4] Subversionia Torvalds ei kokenut sopivaksi Linux-ytimen kehitystarkoituksiin.[13]

RhodeCoden mukaan Git oli vuonna 2016 usealla eri mittaustavalla selkeästi suosituin versionhallintajärjestelmä.[14]

Ars Technican mukaan Microsoft käyttää nykyisin Gitiä Windowsin lähdekoodien hallintaan.[15]

GNU arch[muokkaa | muokkaa wikitekstiä]

GNU arch on avoimen lähdekoodin hajautettu versionhallintajärjestelmä, jonka kehitys on päättynyt.[16] GNU archin väitetään vaikuttaneen useiden muiden versionhallintajärjestelmien kehitykseen kuten Git, Mercurial ja GNU Bazaar.[16]

GNU archia on kritisoitu muun muassa hakemistorakenteen käyttötavasta sekä tiedostonimien erikoisuuksista.[17][18][19]

ArX on archista haarautunut versionhallintajärjestelmä, joka on toteutettu uudelleen C++-kielellä.[20]

GNU Bazaar[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: GNU Bazaar

GNU Bazaar on hajautettu versionhallintajärjestelmä kuten Git ja Mercurial. Bazaar on avoimen lähdekoodin projekti, jota sponsoroi Canonical.[21]

Mercurial[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Mercurial

Mercurial on avoimen lähdekoodin hajautettu versionhallintajärjestelmä kuten Git ja Bazaar, jota mm. Facebook käyttää.[22]

Monotone[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Monotone

Monotone on avoimen lähdekoodin hajautettu versionhallintajärjestelmä, joka asettaa suuremman painoarvon tiedon yhtenäisyydelle (engl. integrity) ja luotettavuudelle kuin suorituskyvylle.[23]

Monotone tukee atomisia tallennuksia, säilyttää historiaan uudelleen nimeämisessä ja käyttää SHA-1 tiivistefunktiota.[24] Monotone säilöö lähdekoodit SQLite-tietokantamoottorilla.[24] Monotone tukee digitaalista allekirjoitusta RSA:lla.[25]

Perforce Helix[muokkaa | muokkaa wikitekstiä]

Perforce Helix (ennen vain Perforce) on Perforce Softwaren kaupallinen versionhallintajärjestelmä. Perforce tarjoaa viiden käyttäjän lisenssiä ilmaiseksi indie-pelien kehittäjille.[26]

Plastic SCM[muokkaa | muokkaa wikitekstiä]

Plastic SCM on Códice Softwaren kaupallinen versionhallintajärjestelmä, joka on julkaistu vuonna 2006.[27]

PVCS[muokkaa | muokkaa wikitekstiä]

PVCS Version Manager (ent. Polytron Version Control System) on Serena Softwaren kaupallinen versionhallintajärjestelmä. Versio 8.5 on saatavilla muun muassa AIX-, Linux-, Solaris- ja Windows-alustoille.[28]

QVCS[muokkaa | muokkaa wikitekstiä]

QVCS (Quma Version Control System) on alun perin Amiga-tietokoneelle julkaistu kaupallinen versionhallintajärjestelmä, jonka on julkaissut Quma Software. Alkuperäinen versio on siirretty Windows-alustalle vuonna 1996, se on myöhemmin toteutettu uudelleen Javalla ja julkaistu avoimena lähdekoodin versiona.[29][30][31]

RCS[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: RCS

RCS on yhden käyttäjän vapaa versiohallintajärjestelmä.[32] RCS:n kehityksen aloitti Walter Tichy 1980-luvun alkupuolella Purduen yliopistossa.[33] RCS on kehitetty Source Code Control Systemin (SCCS) pohjalta.[34]

RCS on niin sanottu ensimmäisen sukupolven versionhallintajärjestelmä.[2]

SCCS[muokkaa | muokkaa wikitekstiä]

Source Code Control System (SCCS) on yksi varhaisista versiohallintajärjestelmistä. Se on kehitetty vuonna 1972 Bell Labsissa IBM System/370 -tietokoneelle.[35]

SCCS:lle on tehty avoimen lähdekoodin korvike GNU CSSC sekä POSIX-yhteensopiva versio.[36][37] SCCS on niin sanottu ensimmäisen sukupolven versionhallintajärjestelmä.[2]

StarTeam[muokkaa | muokkaa wikitekstiä]

StarTeam on Starbasen (myöhemmin Borlandin ja Micro Focusin) kehittämä versionhallintajärjestelmä.[38]

Subversion (SVN)[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Subversion

Subversion on versiohallintajärjestelmä, joka on kehitetty korjaamaan CVS:n ongelmia.[39]

Vuonna 2011 Subversion oli suosituimpia versionhallintajärjestelmiä.[2] Subversion on niin sanottu toisen sukupolven versionhallintajärjestelmä.[2]

Vault[muokkaa | muokkaa wikitekstiä]

Vault on SourceGearin keskitetty kaupallinen versionhallinta- ja bugiseurantaohjelma, joka käyttää Microsoftin SQL Serveriä ja IIS Web Service -palvelua.[40]

Veracity[muokkaa | muokkaa wikitekstiä]

Veracity on SourceGearin hajautettu versionhallintajärjestelmä.[41] Veracityn lähdekoodit on julkaistu Apache-lisenssillä.[41]

Vesta[muokkaa | muokkaa wikitekstiä]

Vesta on Compaqin (ennen Digitalin) kehittämä ohjelmiston konfiguraation ja lähdekoodin versionhallintajärjestelmä.[42][43] Vesta on julkaistu GNU LGPL -lisenssillä.[44]

Visual Source Safe[muokkaa | muokkaa wikitekstiä]

Visual Source Safe on Microsoftin versiohallintajärjestelmä, joka seuraa Microsoftin Visual Studio -kehitysympäristön mukana. Visual Source Safe (VSS) on erityisesti Windows-alustalle tarkoitettu asiakas-palvelin -tyylinen versiohallintaohjelmisto.

Source Safen etuna on helppo käyttöönotto, jos sovelluskehitystä tehdään Visual Studio -työkaluilla Microsoft-ympäristössä. VSS integroituu vakiona Visual Studioon.

Laajempiin ja hajautetumpiin projekteihin Microsoft suosittelee Visual Studio Team Systemin Visual Studio Team Foundation Server -palvelinta.

Microsoft tukee Visual Source Safen käyttämistä vain Windows-asiakasohjelmien kanssa, mutta kolmansilta osapuolilta on tarjolla myös asiakasohjelmat Javalle, Linuxille, Macintoshille ja Sunin Solaris-käyttöjärjestelmälle.

Source Safe on kerännyt laajalti negatiivista huomiota sen ongelmakohtiin.[15][45][46][47][48]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Chapter 1. How did we get here? hgbook.red-bean.com. Viitattu 3.11.2019. (englanniksi)
  2. a b c d e f g h i Eric Sink: A History of Version Control ericsink.com. Viitattu 23.2.2017. (englanniksi)
  3. Nathan Willis: BitKeeper goes open source 11.5.2016. Lwn.net. Viitattu 6.11.2019. (englanniksi)
  4. a b Zack Brown: A Git Origin Story 27.7.2018. Linux Journal. Viitattu 6.11.2019. (englanniksi)
  5. Nathan Willis: BitKeeper goes open source 11.5.2016. Lwn.net. Viitattu 6.11.2019. (englanniksi)
  6. http://www-306.ibm.com/software/awdtools/clearcase/features/index.html?S_CMP=wspace
  7. http://www-306.ibm.com/software/awdtools/clearcase/
  8. http://freshmeat.sourceforge.net/projects/codeville
  9. a b 1.1 What is CVS? gnu.org. Viitattu 3.11.2019. (englanniksi)
  10. Moertel, Tom: How I stopped missing Darcs and started loving Git blog.moertel.com. Viitattu 23.2.2017.
  11. https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-mainframe-software/devops/ca-endevor-software-change-manager/18-0/using/what-is-ca-endevor-scm.html
  12. a b Jake Edge: Version control with Fossil 16.3.2011. Lwn.net. (englanniksi)
  13. Torvalds, Linus: Linus on the BK withdrawal LWN. Viitattu 23.2.2017. (englanniksi) 
  14. Version Control Systems Popularity in 2016 rhodecode.com. Viitattu 2.11.2019. (englanniksi)
  15. a b Microsoft hosts the Windows source in a monstrous 300GB Git repository Ars Technica. Viitattu 21.2.2017.
  16. a b Tai, Andy: Re: [Gnu-arch-users revc] lists.gnu.org. Viitattu 23.2.2017.
  17. Linus Torvalds: Re: [Gnu-arch-users Re: [GNU-arch-dev] [ANNOUNCEMENT] /Arch/ embraces `git'] gelato.unsw.edu.au. 23.4.2005. Viitattu 6.11.2019. (englanniksi)
  18. Arch naming conventions from a Layman's standpoint gnuarch.org. Arkistoitu . Viitattu 6.11.2019. (englanniksi)
  19. Some Issues with GNU arch enyo.de. Viitattu 6.11.2019. (englanniksi)
  20. ArX nongnu.org. Viitattu 8.11.2019. (englanniksi)
  21. Bazaar is now a GNU project lists.ubuntu.com. Viitattu 23.2.2017.
  22. Goode, Durham & Agarwal, Siddharth P.: Scaling Mercurial at Facebook Facebook. Viitattu 21.2.2017.
  23. 6 Version Control Systems Reviewed smashingmagazine.com. Viitattu 23.2.2017.
  24. a b The Monotone version control system lwn.net. Viitattu 6.11.2019. (englanniksi)
  25. Monotone – distributed version control system linuxlinks.com. Viitattu 8.11.2019. (englanniksi)
  26. https://nordicgame.com/free-tools-perforce-indie-studio-pack/
  27. Plastic SCM: A Full Version Control Stack built with Mono mono-project.com. 13.2.2019. Viitattu 6.11.2019. (englanniksi)
  28. Announcing the Release of Serena PVCS Version Manager 8.5 Serena Software. Viitattu 23.2.2017.
  29. Quma Version Control System web.archive.org. Viitattu 23.2.2017.
  30. QVCS-Enterprise open source project github.com. Viitattu 23.2.2017.
  31. Amiga World Magazine (December 1992) archive.org. Viitattu 23.2.2017.
  32. Tichy, W. F.: Rcs – a system for version control. Software-Practice & Experience, 15(7), 1985, 637–654.
  33. GNU RCS gnu.org. Viitattu 3.11.2019. (englanniksi)
  34. Rochkind, M.J.: The Source Code Control System, IEEE Transactions on Software Engineering, Volume 1(4), 1975, 364–370.
  35. SCCS vs RCS sccs.sourceforge.net. Viitattu 21.2.2017.
  36. GNU CSSC gnu.org. Viitattu 21.2.2017.
  37. Welcome to the SCCS project sccs.sourceforge.net. Viitattu 21.2.2017.
  38. https://blog.microfocus.com/borland-starteam-12-0/
  39. http://svnbook.red-bean.com/en/1.7/svn.intro.whatis.html#svn.intro.history
  40. https://sourcegear.com/vault/
  41. a b Veracity, a New DVCS Based on a Distributed Database infoq.com. 19.7.2011. Viitattu 3.11.2019. (englanniksi)
  42. Vesta Configuration Management System sourceforge.net. Viitattu 8.11.2019. (englanniksi)
  43. Welcome to the home page of the Vesta Configuration Management System! vestasys.org. Viitattu 8.11.2019. (englanniksi)
  44. Software announcements by license lwn.net. 23.7.2003. Viitattu 8.11.2019. (englanniksi)
  45. Source Safe Problems abstrakti.com. Viitattu 21.2.2017.
  46. De Smet, Alan: Visual SourceSafe: Microsoft's Source Destruction System highprogrammer.com. Viitattu 21.2.2017.
  47. Source Control: Anything But SourceSafe blog.codinghorror.com. Viitattu 21.2.2017.
  48. Visual SourceSafe Version Control: Unsafe at any Speed? developsense.com. Viitattu 21.2.2017.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]