Ero sivun ”Bazaar” versioiden välillä

Siirry navigaatioon Siirry hakuun
1 265 merkkiä lisätty ,  11. marraskuuta 2008
mergestä vähän tarkemmin
(tageista)
(mergestä vähän tarkemmin)
Rivi 157: Rivi 157:
  $ 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.


Jos eri henkilöt muokkaavat projektia, käy helposti niin, että kehittäjien koneilla olevat varastot poikkeavat palvelimella olevasta. Versiot saa yhdistettyä komennolla
=== Kehityshaarat ===
  $ 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
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
  $ bzr diff
Jos merge ei kuitenkaan osaa yhdistää versioita, 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 tämä on tehty, 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
Lopuksi muutokset tallennetaan paikalliseen varastoon normaalisti komennolla
Lopuksi muutokset tallennetaan paikalliseen varastoon normaalisti komennolla

Navigointivalikko