Ero sivun ”Bazaar” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Ei muokkausyhteenvetoa
 
(11 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Bazaar on vapaa, hajautettu versionhallintaohjelma joka on saatavissa Linuxin lisäksi myös Windowsille ja Mac OS:lle.
{{Ohjelma  
{{Ohjelma  
  | nimi=Bazaar  
  | nimi=Bazaar  
Rivi 7: Rivi 5:
  | lisenssi=[[GPL]]  
  | lisenssi=[[GPL]]  
  | käyttöliittymä=teksti  
  | käyttöliittymä=teksti  
  | kotisivu=[http://bazaar-vcs.org bazaar-vcs.org]}}
  | kotisivu=[http://bazaar-vcs.org bazaar-vcs.org]
}}
 
'''Bazaar''' on vapaa, hajautettu [[versionhallintaohjelma]] joka on saatavissa Linuxin lisäksi myös Windowsille ja Mac OS:lle.


== Yleistä ==
== Yleistä ==
Rivi 15: Rivi 16:


== Asennus ==
== Asennus ==
Bazaar löytyy useimpien [[jakelu]]iden [[paketinhallintajärjestelmä]]stä paketista <tt>bazaar</tt> tai <tt>bzr</tt>.
{{Asenna|Bazaar|bazaar</tt> tai <tt>bzr}}


== Käyttö ==
== Käyttö ==
Rivi 24: Rivi 25:
  $ bzr whoami "Erkki Esimerkki <erkki@linux.fi>"
  $ bzr whoami "Erkki Esimerkki <erkki@linux.fi>"


=== Työskentely paikallisen varaston kanssa ===
Koska Bazaar on hajautettu versionhallintaohjelma, sitä käytettäessä toimitaan omalla koneella sijaitsevan varaston kanssa. Tämä varasto voidaan toki aina tarpeen tullen laittaa verkkoon julkiselle palvelimelle.


=== Paikallisen varaston luominen ===
Tiettyyn hakemistoon voidaan perustaa uusi varasto komennolla
Tiettyyn hakemistoon voidaan perustaa uusi varasto komennolla
  bzr init
  bzr init
Rivi 33: Rivi 35:
  bzr add tiedosto
  bzr add tiedosto
Luodaan esimerkiksi uusi projekti, jota käytämme Bazaariin tutustumiseen:
Luodaan esimerkiksi uusi projekti, jota käytämme Bazaariin tutustumiseen:
<pre>
$ mkdir bazaar
$ mkdir bazaar
$ cd bazaar/
$ cd bazaar/
$ bzr init
$ bzr init
$ [[touch]] tietoa.txt
$ [[touch]] tietoa.txt
$ touch lisenssi
$ touch lisenssi
$ bzr add tietoa.txt lisenssi
$ bzr add tietoa.txt lisenssi
added tietoa.txt
added tietoa.txt
added lisenssi
added lisenssi
Kaikki hakemiston tiedostot voitaisiin lisätä kerralla komennolla
</pre>
bzr add


Seuraavaksi tallennamme projektistamme ensimmäisen ''revision'' versionhallintajärjestelmään komennolla <tt>bzr commit</tt> jolle voidaan antaa myös kuvaus muutoksesta:
Seuraavaksi tallennamme projektistamme ensimmäisen ''revision'' versionhallintajärjestelmään komennolla <tt>bzr commit</tt> jolle voidaan antaa myös kuvaus muutoksesta:
Rivi 53: Rivi 55:
</pre>
</pre>


<tt>bzr commit</tt> lisää Bazaarin tietokantaan uuden ''revision'', johon on myöhemmin mahdollista palata ja jota voidaan muutenkin hyödyntää esimerkiksi tutkimalla koodiin tehtyjä muutoksia.
=== Revisiohistoria ===
Muokataan seuraavaksi projektiamme kirjoittamalla jotain tekstiä tiedostoon <tt>tietoa.txt</tt>. Edellisen <tt>bzr commit</tt> -komennon jälkeen tekemämme muutokset näemmä komennolla <tt>bzr diff</tt>:
Muokataan seuraavaksi projektiamme kirjoittamalla jotain tekstiä tiedostoon <tt>tietoa.txt</tt>. Edellisen <tt>bzr commit</tt> -komennon jälkeen tekemämme muutokset näemmä komennolla <tt>bzr diff</tt>:
<pre>
<pre>
Rivi 60: Rivi 64:
+++ tietoa.txt  2008-04-13 16:42:09 +0000
+++ tietoa.txt  2008-04-13 16:42:09 +0000
@@ -0,0 +1,1 @@
@@ -0,0 +1,1 @@
+Bazaar on hajautettu vapaa, hajautettu versionhallintaohjelma joka on saatavissa Linuxin lisäksi myös
+Bazaar on vapaa, hajautettu versionhallintaohjelma joka on saatavissa Linuxin lisäksi myös
Windowsille ja Mac OS:lle.
Windowsille ja Mac OS:lle.
</pre>
</pre>
Rivi 89: Rivi 93:
   Projektin alku
   Projektin alku
</pre>
</pre>
<tt>bzr diff</tt> -komennolla voidaan lisäksi vertailla tiettyjä revisioita. Nykyisen varaston sisällön eron tiettyyn revisioon näkee komennolla
bzr diff -r VERSIO
Ja tiettyjen revisioiden välillä tapahtuneet muutokset on mahdollista selvittää komennolla
bzr diff -r VERSIO..VERSIO
Esimerkiksi revisiosta 1 revisioon 3 tapahtuneet muutokset näkee komennolla
bzr diff -r 1..3
Huomaa kaksi pistettä. Komennon tuloste on samanlaista kuin [[diff]]-komentoa käytettäessä.
Muutosten tarkastelu voidaan rajata koskemaan vain tiettyjä tiedostoja komennolla
bzr diff tiedosto1 tiedosto2
=== Historiaan palaaminen ===
Bazaariin tallennettuihin (<tt>bzr commit</tt>) revisioihin on tarvittaessa mahdollista palata. Muutetaan esimerkiksi tiedostoa <tt>tietoa.txt</tt> ja lisätään sinne kirjoitusvirhe:
$ bzr commit -m "Parantelua"
$ bzr diff -r2
=== modified file 'tietoa.txt'
--- tietoa.txt  2008-11-11 14:45:35 +0000
+++ tietoa.txt  2008-11-11 14:49:15 +0000
+Tämä ilmestyi tänne vahingossa, ei pitänyt tallenttaa/committaa
Nyt voimme kumota virheemme kahdella tapaa. Koko edellisen commitin vaikutus voidaan poistaa tietokannasta komennolla
bzr uncommit
Tämä kumoaa kaikki edellisen commitin vaikutukset ja palauttaa tietokannan edellistä revisiota (tässä rev 2) vastaavaan tilaan. Komento kysyy vielä vahvistuksen, jotta tietoa ei poisteta vahingossa. Komento jättää tiedostot ennalleen, eli tässä tapauksessa ne jäisivät revisiota 3 vastaavaan tilaan.
Fiksumpi tapa tiettyyn revisioon palaamiseen on <tt>revert</tt>-toiminto:
bzr revert
Jos mitään parametreja ei anneta, palataan tällä komennolla edellistä committia vastaavaan tilaan, eli kaikki muutokset, joita ei ole viety tietokantaan komennolla <tt>bzr commit</tt> kumotaan.
Tiettyyn revisioon voidaan palata valitsimella -r:
bzr revert -r REVISIO
esimerkiksi
bzr revert -r 2
Komento muuttaa projektin tiedostot vastaamaan revision 2 tilaa. Tämän jälkeen muutokset on vietävä vielä tietokantaan komennolla
bzr commit -m "Paltaan takaisin toimivaanversioon"
Revertin etu <tt>uncommit</tt>-toimintoon nähden on se, että tällöin mitään tietoa ei hävitetä, vaan "kumotut" muutokset löytyvät edelleen historiasta normaalisti.
=== Tagit ===
Bazaar mahdollistaa tiettyjen revisioiden nimeämisen ''tageilla''. Esimerkiksi kun ohjelmasta julkaistaan tietty versio (esimerkiksi 1.0), voitaisiin tälle versiolle antaa tagi "versio-1.0". Tällöin on esimerkiksi tarvittaessa helppo palata tähän versioon tai tarkastella, mitä muutoksia tämän version jälkeen on tehty.
Nykyiselle revisiolle asetetaan tagi komennolla
bzr tag "nimi"
esimerkiksi
bzr tag "versio-1.0"
Tagi voidaan asettaa myös jollekin tietylle revisiolle komennolla
bzr tag -r REVSISIO "nimi"
esimerkiksi
bzr tag -r 2 "versio-0.1"
Nyt tageja voidaan käyttää revisioiden sijaan esim. vertailtaessa ohjelmaan tehtyjä muutoksia. Tällöin <tt>bzr</tt>:n <tt>-r</tt>-parametrille annetaan revision sijasta tagi muodossa <tt>tag:nimi</tt>. Esimerkiksi tagilla "versio-1.0" nimetyn revision ja nykyisen revision välillä tapahtuneet muutokset näkee komennolla
bzr diff -r tag:versio-1.0
Ja vastaavasti versioon 1.0 voitaisiin palata komennolla
bzr revert -r tag:versio-1.0
Tageja on myös mahdollista poistaa komennolla
bzr tag --delete tagi
Kaikki tagit näkee komennolla
bzr tags
Komennon tulosteena on lista, jossa näkyy tagi ja sitä vastaava revisio.


=== Ulkoisen palvelimen käyttö ===
=== Ulkoisen palvelimen käyttö ===
Rivi 94: Rivi 158:
  $ bzr push --create-prefix sftp://tunnus@palvelin.com/~/public_html/rojekti
  $ bzr push --create-prefix sftp://tunnus@palvelin.com/~/public_html/rojekti
  2 revision(s) pushed.
  2 revision(s) pushed.
Tässä <tt>--create-prefix</tt> 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.  
Tässä <tt>--create-prefix</tt> 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.''
''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 <tt>bzr branch</tt>:
Palvelimella oleva projekti taas voidaan hakea komennolla <tt>bzr branch</tt>:
  $ bzr branch http://osoite.fi/rojekti
  $ bzr branch http://osoite.fi/rojekti
Tällöinkin Bazaar hakee kaikki projektin ''revisiot''.
Tällöinkin Bazaar hakee kaikki projektin revisiot. Osoite on yksinkertaisesti jokin hakemisto, josta löytyy <tt>.bzr</tt>-niminen Bazaarin oman tietokannan sisältävä hakemisto.
 
=== Kehityshaarat ===
 
Bazaar mahdollistaa useiden kehityshaarojen luomisen ja hallinnoinnin. Esimerkiksi ohjelmaa kehitettäessä ohjelman sen hetkisestä tilasta voitaisiin uusi kehityshaara, ''branch'', joka on alkuperäisen ohjelman kopio. Tähän haaraan voidaan sitten tehdä rauhassa suuria muutoksia esimerkiksi uuden ominaisuuden lisäämiseksi ilman pelkoa siitä, että alkuperäistä ohjelman kehitystä häiritään. Esimerkkitilanne voisi olla vaikka graafisen käyttöliittymän lisääminen ohjelmaan. Pienessä mittakaavassa sama asia on se, että useampi henkilö muokkaa ohjelmaa erikseen omalla koneellaan ja lopulta haluaa siirtää muutoksensa takaisin palvelimelle.
 
Kun kehityshaaraan on tehty halutut muutokset, ne voidaan tuoda takaisin "päähaaraan" (Bazaarissa sinänsä mikään haara ei ole toista tärkeämpi, mutta tässä päähaaralla tarkoitetaan esimerkiksi projektin virallista Bazaar-versionhallintaa). Tätä kahden haaran yhdistämistä kutsutaan nimellä ''merge''.
 
Toiseen haaraan tehdyt muutokset tuodaan omaan kehityshaaraan komennolla
bzr merge http://projekti.fi/kehityshaara
Jos osoitetta ei anneta, bzr hakee siihen kehityshaaraan, josta koneella oleva haara on kopio, tehdyt muutokset ja yhdistää ne koneella olevaan paikalliseen haaraan.


Jos eri henkilöt muokkaavat projektia, käy helposti niin, että kehittäjien koneilla olevat varastot poikkeavat palvelimella olevasta. Versiot saa yhdistettyä komennolla
Bazaar yrittää automaattisesti yhdistää muutokset. Jos merge ilmoittaa "All changes applied succesfully", on se automaattisesti osannut yhdistämään versiot. Muutokset näkee komennolla
$ bzr merge
jolloin Bazaar yrittää automaattisesti yhdistää muutokset. Komennon aiheuttamat muutokset näkee komennolla
  $ bzr diff
  $ bzr diff
Tiedostot, joissa on eroavaisuuksia versioiden välillä näkee komennolla
Joskus merge ei kuitenkaan osaa yhdistää versioita kokonaan automaattisesti. Näin tapahtuu silloin, kun samaa osaa tiedostosta on muokattu molemmissa haaroissa. Tällöin syntyy ristiriita (''conflict'') joka on ratkaistava käsin. Tiedostot, joita ristiriidat koskevat, näkee komennolla
  $ bzr conflicts
  $ bzr conflicts
Tämän jälkeen ongelmat täytyy käydä ratkaisemassa koodista käsin. Kun ne on ratkaistu, vahvistetaan tiedostoon tehdyt muutokset komennolla
Tämän jälkeen ongelmat täytyy käydä ratkaisemassa koodista käsin. Kun tämä on tehty, poistetaan ristiriita Bazaarin tietokannasta komennolla
  $ bzr resolve TIEDOSTONIMI
  $ bzr resolve TIEDOSTONIMI
Tämän jälkeen muutokset tallennetaan paikalliseen varastoon normaalisti komennolla
Lopuksi muutokset tallennetaan paikalliseen varastoon normaalisti komennolla
  $ bzr commit -m "Yhdistetty Pekan version kanssa"
  $ bzr commit -m "Yhdistetty Pekan version kanssa"


== Launchpad ==
== Launchpad ==
Bazaar-palvelimen asentamisen sijaan voidaan käyttää myös julkisia Bazaar-palvelimen tarjoavia palveluita. Suurin tällainen on mm. [[Ubuntu]]n kehitysalustana käytettävä [http://www.launchpad.net Launchpad]. Jokainen käyttäjä voi vapaasti käyttää Launchpadin Bazaar-palvelua rekisteröitymällä palveluun.  
Bazaar-palvelimen asentamisen sijaan voidaan käyttää myös julkisia Bazaar-palvelimen tarjoavia palveluita. Suurin tällainen on mm. [[Ubuntu]]n 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  <tt>~/.ssh/id_dsa.pub</tt> tai <tt>~/.ssh/id_rsa.pub</tt>. Jos tällaisia tiedostoa ei löydy, on SSH-avainpari luotava komennolla <tt>ssh-keygen</tt>. 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.
Muutoksia lähetettäessä käyttäjä tunnistetaan [[SSH]]-avaimen avulla. Käyttäjän julkinen SSH-avain löytyy polusta  <tt>~/.ssh/id_dsa.pub</tt> tai <tt>~/.ssh/id_rsa.pub</tt>. Jos tällaisia tiedostoa ei löydy, on SSH-avainpari luotava komennolla <tt>ssh-keygen</tt>. 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.
Rivi 129: Rivi 201:


== Aiheesta muualla ==
== Aiheesta muualla ==
*[http://doc.bazaar-vcs.org/ Ohjelman kotisivu]
*[http://bazaar-vcs.org/ Ohjelman kotisivu]
*[http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html Pikaohje]
*[http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html Pikaohje]
*[http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html Käyttäjän opas]
*[http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html Käyttäjän opas]

Nykyinen versio 21. tammikuuta 2015 kello 15.05

Bazaar

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

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

Yleistä[muokkaa]

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[muokkaa]

Bazaar löytyy useimpien jakeluiden paketinhallinnasta nimellä bazaar tai bzr. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.

Käyttö[muokkaa]

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>"

Koska Bazaar on hajautettu versionhallintaohjelma, sitä käytettäessä toimitaan omalla koneella sijaitsevan varaston kanssa. Tämä varasto voidaan toki aina tarpeen tullen laittaa verkkoon julkiselle palvelimelle.

Paikallisen varaston luominen[muokkaa]

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

Kaikki hakemiston tiedostot voitaisiin lisätä kerralla komennolla

bzr add

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.

bzr commit lisää Bazaarin tietokantaan uuden revision, johon on myöhemmin mahdollista palata ja jota voidaan muutenkin hyödyntää esimerkiksi tutkimalla koodiin tehtyjä muutoksia.

Revisiohistoria[muokkaa]

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 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

bzr diff -komennolla voidaan lisäksi vertailla tiettyjä revisioita. Nykyisen varaston sisällön eron tiettyyn revisioon näkee komennolla

bzr diff -r VERSIO

Ja tiettyjen revisioiden välillä tapahtuneet muutokset on mahdollista selvittää komennolla

bzr diff -r VERSIO..VERSIO

Esimerkiksi revisiosta 1 revisioon 3 tapahtuneet muutokset näkee komennolla

bzr diff -r 1..3

Huomaa kaksi pistettä. Komennon tuloste on samanlaista kuin diff-komentoa käytettäessä.

Muutosten tarkastelu voidaan rajata koskemaan vain tiettyjä tiedostoja komennolla

bzr diff tiedosto1 tiedosto2

Historiaan palaaminen[muokkaa]

Bazaariin tallennettuihin (bzr commit) revisioihin on tarvittaessa mahdollista palata. Muutetaan esimerkiksi tiedostoa tietoa.txt ja lisätään sinne kirjoitusvirhe:

$ bzr commit -m "Parantelua"
$ bzr diff -r2
=== modified file 'tietoa.txt'
--- tietoa.txt  2008-11-11 14:45:35 +0000
+++ tietoa.txt  2008-11-11 14:49:15 +0000
+Tämä ilmestyi tänne vahingossa, ei pitänyt tallenttaa/committaa

Nyt voimme kumota virheemme kahdella tapaa. Koko edellisen commitin vaikutus voidaan poistaa tietokannasta komennolla

bzr uncommit

Tämä kumoaa kaikki edellisen commitin vaikutukset ja palauttaa tietokannan edellistä revisiota (tässä rev 2) vastaavaan tilaan. Komento kysyy vielä vahvistuksen, jotta tietoa ei poisteta vahingossa. Komento jättää tiedostot ennalleen, eli tässä tapauksessa ne jäisivät revisiota 3 vastaavaan tilaan.

Fiksumpi tapa tiettyyn revisioon palaamiseen on revert-toiminto:

bzr revert 

Jos mitään parametreja ei anneta, palataan tällä komennolla edellistä committia vastaavaan tilaan, eli kaikki muutokset, joita ei ole viety tietokantaan komennolla bzr commit kumotaan.

Tiettyyn revisioon voidaan palata valitsimella -r:

bzr revert -r REVISIO

esimerkiksi

bzr revert -r 2

Komento muuttaa projektin tiedostot vastaamaan revision 2 tilaa. Tämän jälkeen muutokset on vietävä vielä tietokantaan komennolla

bzr commit -m "Paltaan takaisin toimivaanversioon"

Revertin etu uncommit-toimintoon nähden on se, että tällöin mitään tietoa ei hävitetä, vaan "kumotut" muutokset löytyvät edelleen historiasta normaalisti.

Tagit[muokkaa]

Bazaar mahdollistaa tiettyjen revisioiden nimeämisen tageilla. Esimerkiksi kun ohjelmasta julkaistaan tietty versio (esimerkiksi 1.0), voitaisiin tälle versiolle antaa tagi "versio-1.0". Tällöin on esimerkiksi tarvittaessa helppo palata tähän versioon tai tarkastella, mitä muutoksia tämän version jälkeen on tehty.

Nykyiselle revisiolle asetetaan tagi komennolla

bzr tag "nimi"

esimerkiksi

bzr tag "versio-1.0"

Tagi voidaan asettaa myös jollekin tietylle revisiolle komennolla

bzr tag -r REVSISIO "nimi"

esimerkiksi

bzr tag -r 2 "versio-0.1"

Nyt tageja voidaan käyttää revisioiden sijaan esim. vertailtaessa ohjelmaan tehtyjä muutoksia. Tällöin bzr:n -r-parametrille annetaan revision sijasta tagi muodossa tag:nimi. Esimerkiksi tagilla "versio-1.0" nimetyn revision ja nykyisen revision välillä tapahtuneet muutokset näkee komennolla

bzr diff -r tag:versio-1.0

Ja vastaavasti versioon 1.0 voitaisiin palata komennolla

bzr revert -r tag:versio-1.0

Tageja on myös mahdollista poistaa komennolla

bzr tag --delete tagi

Kaikki tagit näkee komennolla

bzr tags

Komennon tulosteena on lista, jossa näkyy tagi ja sitä vastaava revisio.

Ulkoisen palvelimen käyttö[muokkaa]

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. Osoite on yksinkertaisesti jokin hakemisto, josta löytyy .bzr-niminen Bazaarin oman tietokannan sisältävä hakemisto.

Kehityshaarat[muokkaa]

Bazaar mahdollistaa useiden kehityshaarojen luomisen ja hallinnoinnin. Esimerkiksi ohjelmaa kehitettäessä ohjelman sen hetkisestä tilasta voitaisiin uusi kehityshaara, branch, joka on alkuperäisen ohjelman kopio. Tähän haaraan voidaan sitten tehdä rauhassa suuria muutoksia esimerkiksi uuden ominaisuuden lisäämiseksi ilman pelkoa siitä, että alkuperäistä ohjelman kehitystä häiritään. Esimerkkitilanne voisi olla vaikka graafisen käyttöliittymän lisääminen ohjelmaan. Pienessä mittakaavassa sama asia on se, että useampi henkilö muokkaa ohjelmaa erikseen omalla koneellaan ja lopulta haluaa siirtää muutoksensa takaisin palvelimelle.

Kun kehityshaaraan on tehty halutut muutokset, ne voidaan tuoda takaisin "päähaaraan" (Bazaarissa sinänsä mikään haara ei ole toista tärkeämpi, mutta tässä päähaaralla tarkoitetaan esimerkiksi projektin virallista Bazaar-versionhallintaa). Tätä kahden haaran yhdistämistä kutsutaan nimellä merge.

Toiseen haaraan tehdyt muutokset tuodaan omaan kehityshaaraan komennolla

bzr merge http://projekti.fi/kehityshaara

Jos osoitetta ei anneta, bzr hakee siihen kehityshaaraan, josta koneella oleva haara on kopio, tehdyt muutokset ja yhdistää ne koneella olevaan paikalliseen haaraan.

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

$ bzr diff

Joskus merge ei kuitenkaan osaa yhdistää versioita kokonaan automaattisesti. Näin tapahtuu silloin, kun samaa osaa tiedostosta on muokattu molemmissa haaroissa. Tällöin syntyy ristiriita (conflict) joka on ratkaistava käsin. Tiedostot, joita ristiriidat koskevat, näkee komennolla

$ bzr conflicts

Tämän jälkeen ongelmat täytyy käydä ratkaisemassa koodista käsin. Kun tämä on tehty, poistetaan ristiriita Bazaarin tietokannasta komennolla

$ bzr resolve TIEDOSTONIMI

Lopuksi muutokset tallennetaan paikalliseen varastoon normaalisti komennolla

$ bzr commit -m "Yhdistetty Pekan version kanssa"

Launchpad[muokkaa]

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[muokkaa]

Aiheesta muualla[muokkaa]