Hajautettu versionhallintajärjestelmä

Wikipediasta
Siirry navigaatioon Siirry hakuun

Hajautettu versionhallintajärjestelmä (engl. distributed revision control system (DRCS), distributed version control system (DVCS)) on ohjelmiston versiohallintaan käytettävä järjestelmä, joka ei riipu yksittäisestä palvelimesta. Hajautetun versionhallintajärjestelmän vastakohta on keskitetty versionhallintajärjestelmä.

Ominaisuuksiin kuuluu mahdollisuus noutaa, muokata ja yhdistää lähdekoodi eri tietovarastojen (engl. repository) välillä ilman keskitettyä versioiden synkronointia. Vaihtoehtoisesti järjestelmässä voi olla useita palvelimia. Olennainen ajatus toiminnassa on että jokainen työversio (working copy) on myös itsenäinen tietovarasto. Yksittäisten tiedostojen sijaan järjestelmä seuraa muutosjoukkoja (engl. changesets), jotka voivat kattaa useamman tiedoston muutokset yhteenkuuluvana muutoksena.

Konsepti perustuu havainnolle, että laajamittaisessa kehityksessä lähdekoodista on useita rinnakkaisia versioita esimerkiksi eri alustoilla, osastoilla, ominaisuuksilla tai julkaisuversioilla.

Havainnekuva hajautetun versionhallintajärjestelmän toimintamallista.

Ensimmäinen hajautettu versionhallintajärjestelmä oli BitKeeper, joka inspiroi projekteja kuten GNU Arch, Darcs, Monotone ja Git.[1][2][3]

Linus Torvalds kertoo hajautetun järjestelmän eduksi, että politikointi käyttäjäoikeuksista poistuu: jokaisella käyttäjällä on oma tietovarasto.[4] Hajautetussa versionhallinnassa ei ole yksittäistä vikapaikkaa kuten keskitetyssä järjestelmässä: jokainen työkopio on täysi kopio tietovarastosta ja siten sen varmuuskopio.[5] Yksittäiselle käyttäjälle hajautetut työkalut ovat lähes aina nopeampia kuin keskitetyt työkalut.[6] Linux-ytimen kehitysmallissa muutokset kulkevat "portinvartijoina" toimivien alijärjestelmien ylläpitäjien kautta, jotka pitävät omaa lähdekoodipuuta ja lähettävät Torvaldsille muutoksia pääsarjan ytimeen liitettäväksi.[7]

Eräät hajautetut versionhallintajärjestelmät ovat kolmannen sukupolven versionhallintajärjestelmiä.[8]

Hajautettuja versionhallintajärjestelmiä ovat:

Hajautettujen versionhallintajärjestelmien merkittävä ominaisuus on skaalautuvuus: suurissa projekteissa suorituskyky on merkittävä ominaisuus.[9] Torvalds on kutsunut toimintamallia luottamusverkoksi (engl. network of trust), joka on sama malli kuin tietoturva- ja salausohjelmistoissa.[9]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Linus Torvalds: Re: VCS comparison table marc.info. 19.10.2006. Viitattu 9.11.2019. (englanniksi)
  2. Linus Torvalds: Re: [ANNOUNCE Git wiki] marc.info. 5.5.2006. Viitattu 9.11.2019. (englanniksi)
  3. Zack Brown: A Git Origin Story 27.7.2018. Linux Journal. Viitattu 6.11.2019. (englanniksi)
  4. 10 Years of Git: An Interview with Git Creator Linus Torvalds 6.4.2015. Linux Foundation. Viitattu 3.11.2019. (englanniksi)
  5. 1.1 Getting Started - About Version Control git-scm.com. Viitattu 3.11.2019. (englanniksi)
  6. Chapter 1. How did we get here? hgbook.red-bean.com. Viitattu 3.11.2019. (englanniksi)
  7. 2. How the development process works kernel.org. Viitattu 26.11.2019. (englanniksi)
  8. Eric Sink: A History of Version Control ericsink.com. Viitattu 23.2.2017. (englanniksi)
  9. a b Robert Fendt: DVCS Round-Up: One System to Rule Them All?--Part 1 19.1.2009. Linux Foundation. Arkistoitu . Viitattu 6.11.2019. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.