Luettelo versionhallintajärjestelmistä

Wikimedia-luetteloartikkeli

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

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
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ä.[3]

ClearCase

muokkaa

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[5].

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

Codeville

muokkaa

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

Pääartikkeli: CVS

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

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

Pääartikkeli: Darcs

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

Endevor

muokkaa

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

Fossil

muokkaa

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

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.[12]

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

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

GNU arch

muokkaa

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

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

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

GNU Bazaar

muokkaa
Pääartikkeli: GNU Bazaar

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

Mercurial

muokkaa
Pääartikkeli: Mercurial

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

Monotone

muokkaa
Pääartikkeli: Monotone

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

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

Perforce Helix

muokkaa

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

Plastic SCM

muokkaa

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

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.[27]

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.[28][29][30]

Pääartikkeli: RCS

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

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

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

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

StarTeam

muokkaa

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

Subversion (SVN)

muokkaa
Pääartikkeli: Subversion

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

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

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

Veracity

muokkaa

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

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

Visual Source Safe

muokkaa

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.[14][44][45][46][47]

Lähteet

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

Aiheesta muualla

muokkaa