Bazaar

Linux.fista
Versio hetkellä 22. kesäkuuta 2008 kello 17.56 – tehnyt Heikki (keskustelu | muokkaukset) (→‎Työskentely paikallisen varaston kanssa: wikilinkki kuntoon)
Siirry navigaatioon Siirry hakuun

Bazaar on vapaa, hajautettu versionhallintaohjelma joka on saatavissa Linuxin lisäksi myös Windowsille ja Mac OS:lle.


Bazaar

Käyttöliittymä teksti
Lisenssi GPL
Kotisivu bazaar-vcs.org

Yleistä

Bazaar on hajautettu versionhallintajärjestelmä, eli sitä käytettäessä ei normaalisti olla yhteydessä palvelimeen. Bazaaria käytetään normaalisti omalla koneella, ja oman version voi halutessaan lähettää palvelimelle. Bazaar ei myöskään vaadi erillistä keskuspalvelinta tai tällaisia palvelimia voi olla useita.

Bazaarin lisäksi hajautettu versionhallintajärjestelmä on mm. Git.

Asennus

Bazaar löytyy useimpien jakeluiden paketinhallintajärjestelmästä paketista bazaar tai bzr.

Käyttö

Bazaaria käytetään komennolla

$ bzr

Aluksi kerrotaan oma nimi ja sähköposti, jotta ne näkyisivät oikein lokeissa:

$ bzr whoami "Erkki Esimerkki <erkki@linux.fi>"

Työskentely paikallisen varaston kanssa

Tiettyyn hakemistoon voidaan perustaa uusi varasto komennolla

bzr init

Tämä komento luo kyseiseen hakemistoon piilotetun hakemiston .bzr, jossa Bazaar säilyttää tarvitsemiaan tietoja.

Projektiin otetaan mukaan tiedostoja ja hakemistoja komennolla

bzr add tiedosto

Luodaan esimerkiksi uusi projekti, jota käytämme Bazaariin tutustumiseen:

$ mkdir bazaar
$ cd bazaar/
$ bzr init
$ touch tietoa.txt
$ touch lisenssi
$ bzr add tietoa.txt lisenssi
added tietoa.txt
added lisenssi

Seuraavaksi tallennamme projektistamme ensimmäisen revision versionhallintajärjestelmään komennolla bzr commit jolle voidaan antaa myös kuvaus muutoksesta:

$ bzr commit -m "Projektin alku"
$ Committing to: /koodaus/bazaar/
$ added lisenssi
$ added tietoa.txt
$ Committed revision 1.

Muokataan seuraavaksi projektiamme kirjoittamalla jotain tekstiä tiedostoon tietoa.txt. Edellisen bzr commit -komennon jälkeen tekemämme muutokset näemmä komennolla bzr diff:

$ bzr diff
=== modified file 'tietoa.txt'
--- tietoa.txt  2008-04-13 16:39:33 +0000
+++ tietoa.txt  2008-04-13 16:42:09 +0000
@@ -0,0 +1,1 @@
+Bazaar on hajautettu vapaa, hajautettu versionhallintaohjelma joka on saatavissa Linuxin lisäksi myös
Windowsille ja Mac OS:lle.

Tämä muutos voidaan nyt tallentaa varastoon kuten edellä:

$ bzr commit -m "Perustietoja"
Committing to: /koodaus/bazaar/
modified tietoa.txt
Committed revision 2.

Varastoon tehtyjä muutoksia voidaan seurata lokista:

$ bzr log
------------------------------------------------------------
revno: 2
committer: Erkki Esimerkki <erkki@linux.fi>
branch nick: bazaar
timestamp: Sun 2008-04-13 19:43:33 +0300
message:
  Perustietoja
------------------------------------------------------------
revno: 1
committer: Erkki Esimerkki <erkki@linux.fi>
branch nick: bazaar
timestamp: Sun 2008-04-13 19:39:33 +0300
message:
  Projektin alku

Ulkoisen palvelimen käyttö

Tässä vaiheessa voisimme haluta siirtää muutoksemme palvelimelle, jotta muut kehittäjät voisivat osallistua kehitystyöhön. Tämä onnistuu lähettämällä varasto ulkoiselle palvelimelle komennolla bzr push:

$ bzr push --create-prefix sftp://tunnus@palvelin.com/~/public_html/rojekti
2 revision(s) pushed.

Tässä --create-prefix tarkoittaa sitä, että Bazaar luo projektihakemiston, jos se ei vielä ole olemassa. On syytä huomata, että Bazaar lähettää kaikki revisiot, jotka paikalliseen varastoon on tallennettu, ei vain uusinta. Huom: esim. Ubuntu vaatii paketin python-paramiko -asennuksen jotta Bazaarin käyttämä, pythonilla tehty ssh-yhteys onnistuu.

Palvelimella oleva projekti taas voidaan hakea komennolla bzr branch:

$ bzr branch http://osoite.fi/rojekti

Tällöinkin Bazaar hakee kaikki projektin revisiot.

Jos eri henkilöt muokkaavat projektia, käy helposti niin, että kehittäjien koneilla olevat varastot poikkeavat palvelimella olevasta. Versiot saa yhdistettyä komennolla

$ bzr merge

jolloin Bazaar yrittää automaattisesti yhdistää muutokset. Jos merge ilmoittaa 'All changes applied succesfully', on se automaattisesti osannut yhdistää versiot. Muutokset näkee komennolla

$ bzr diff

Jos merge ei kuitenkaan osaa yhdistää versioita, tiedostot, joissa on eroavaisuuksia versioiden välillä näkee komennolla

$ bzr conflicts

Tämän jälkeen ongelmat täytyy käydä ratkaisemassa koodista käsin. Kun tämä on tehty, vahvistetaan tiedostoon tehdyt muutokset komennolla

$ bzr resolve TIEDOSTONIMI

Lopuksi muutokset tallennetaan paikalliseen varastoon normaalisti komennolla

$ bzr commit -m "Yhdistetty Pekan version kanssa"

Launchpad

Bazaar-palvelimen asentamisen sijaan voidaan käyttää myös julkisia Bazaar-palvelimen tarjoavia palveluita. Suurin tällainen on mm. Ubuntun kehitysalustana käytettävä Launchpad. Jokainen käyttäjä voi vapaasti käyttää Launchpadin Bazaar-palvelua rekisteröitymällä palveluun.

Muutoksia lähetettäessä käyttäjä tunnistetaan SSH-avaimen avulla. Käyttäjän julkinen SSH-avain löytyy polusta ~/.ssh/id_dsa.pub tai ~/.ssh/id_rsa.pub. Jos tällaisia tiedostoa ei löydy, on SSH-avainpari luotava komennolla ssh-keygen. Tämän jälkeen kyseisen tiedoston sisältö on kerrottava Launchpadiin menemällä ensin omalle käyttäjäsivulle ja tämän jälkeen napsauttamalla Update SSH keys -linkkiä ja kopioimalla tiedoston sisältö sivun alareunassa olevaan tekstikenttään.

Tämän jälkeen versiot voi lähettää Launchpadiin komennolla

$ bzr push bzr+ssh://käyttäjätunnus@bazaar.launchpad.net/~käyttäjätunnus/+junk/projekti

missä käyttäjätunnus näkyy mm. käyttäjäsivun URL-osoitteessa. Vastaavasti tämä projekti voitaisiin kopioida komennolla

$ bzr branch http://bazaar.launchpad.net/~käyttäjätunnus/+junk/projekti

Katso myös

Aiheesta muualla