Ero sivun ”Mercurial” versioiden välillä
p (vähemmän toistoa) |
Ei muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
Mercurial on [[Python]]illa toteutettu kevyt ja nopea [[versionhallintajärjestelmä]]. Vaikka Mercurial on suhteellisen uusi, monet ohjelmistokehittäjät ja projektit (kuten [[Mozilla]]) ovat ottaneet sen käyttöön. | Mercurial on [[Python]]illa toteutettu kevyt ja nopea [[versionhallintajärjestelmä]]. Vaikka Mercurial on suhteellisen uusi, monet ohjelmistokehittäjät ja projektit (kuten [[Mozilla]]) ovat ottaneet sen käyttöön. | ||
Mercurial on lähtökohtaisesti suunniteltu hajautettuun lähdekoodin hallintaan. Projektilla ei ole [[CVS]]:n tai [[Subversion|SVN]]:n tapaan yhtä keskeistä lähdekoodivarastoa jonne jokainen kehittäjä tekee muutokset, vaan kaikki varastot ovat samanarvoisia. Käytännössä tämä tarkoittaa sitä, että jokaisella kehittäjällä on oma paikallinen kopio koko projektin kehityshistoriasta, ja tehdyt muutokset siirtyvät varastosta toiseen. Kehittäjä voi näin ollen tuoda kenen tahansa kehityshaaran (''branch'') omalle koneelleen ja yhdistää muutokset omaan paikalliseen kopioonsa. | Mercurial on lähtökohtaisesti suunniteltu hajautettuun lähdekoodin hallintaan. Projektilla ei ole [[CVS]]:n tai [[Subversion|SVN]]:n tapaan yhtä keskeistä lähdekoodivarastoa (''repository'') jonne jokainen kehittäjä tekee muutokset, vaan kaikki varastot ovat samanarvoisia. Käytännössä tämä tarkoittaa sitä, että jokaisella kehittäjällä on oma paikallinen kopio koko projektin kehityshistoriasta, ja tehdyt muutokset siirtyvät varastosta toiseen. Kehittäjä voi näin ollen tuoda kenen tahansa kehityshaaran (''branch'') omalle koneelleen ja yhdistää muutokset omaan paikalliseen kopioonsa. | ||
== Mercurialin käyttö == | == Mercurialin käyttö == | ||
Rivi 33: | Rivi 33: | ||
Poistaminen tapahtuu vastaavasti komennolla <tt>hg rm</tt>. | Poistaminen tapahtuu vastaavasti komennolla <tt>hg rm</tt>. | ||
$ hg rm sound.c | $ hg rm sound.c | ||
Tiedostojen uudelleennimeäminen tapahtuu komennolla <tt>hg rename</tt>. | |||
$ hg rename vanha.c uusi.c | |||
Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla <tt>hg status</tt>. | Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla <tt>hg status</tt>. | ||
Rivi 48: | Rivi 51: | ||
R = tiedosto on poistettu<br /> | R = tiedosto on poistettu<br /> | ||
? = tiedostoa ei ole lisätty varastoon | ? = tiedostoa ei ole lisätty varastoon | ||
Jos projektiin ei ole tehty muutoksia, <tt>status</tt>-komento ei tulosta mitään. | |||
=== Muutoksien päivittäminen === | === Muutoksien päivittäminen === | ||
Rivi 53: | Rivi 58: | ||
$ hg commit | $ hg commit | ||
Tämä avaa oletuseditorin johon voit kirjoittaa muutostapahtumalle kuvauksen. Yleensä kannattaa | Tämä avaa oletuseditorin johon voit kirjoittaa muutostapahtumalle kuvauksen. Yleensä kannattaa kirjoittaa ensimmäiselle riville lyhyt kuvaus joka yksinään pystyy kertomaan mitä muutoksia on tehty. Tämä siitä syystä, että vain ensimmäinen rivi näkyy esim. <tt>hg log</tt> -komennon tulosteessa. Muut rivit kannattaa käyttää yksityiskohtaisempaan kuvaukseen. | ||
Jos et haluakaan tehdä muutosta, voit sulkea tekstieditorin tallentamatta tiedostoa. | |||
Päivitykseen voi myös lisätä suoraan lyhyen kommentin käyttämällä valitsinta <tt>-m</tt>: | Päivitykseen voi myös lisätä suoraan lyhyen kommentin käyttämällä valitsinta <tt>-m</tt>: |
Versio 8. toukokuuta 2008 kello 13.45
Mercurial on Pythonilla toteutettu kevyt ja nopea versionhallintajärjestelmä. Vaikka Mercurial on suhteellisen uusi, monet ohjelmistokehittäjät ja projektit (kuten Mozilla) ovat ottaneet sen käyttöön.
Mercurial on lähtökohtaisesti suunniteltu hajautettuun lähdekoodin hallintaan. Projektilla ei ole CVS:n tai SVN:n tapaan yhtä keskeistä lähdekoodivarastoa (repository) jonne jokainen kehittäjä tekee muutokset, vaan kaikki varastot ovat samanarvoisia. Käytännössä tämä tarkoittaa sitä, että jokaisella kehittäjällä on oma paikallinen kopio koko projektin kehityshistoriasta, ja tehdyt muutokset siirtyvät varastosta toiseen. Kehittäjä voi näin ollen tuoda kenen tahansa kehityshaaran (branch) omalle koneelleen ja yhdistää muutokset omaan paikalliseen kopioonsa.
Mercurialin käyttö
Mercurialia käytetään komennolla hg.
Olemassa olevan projektin tuominen
Olemassa olevasta projektista voi tehdä paikallisen kopion komennolla
$ hg clone http://palvelin.example/projekti
Se hakee palvelimelta kopion kohteesta "projekti" ja tallentaa sen uuteen samannimiseen hakemistoon.
Projektin tiedostot päivitetään komennolla
$ hg pull http://palvelin.example/projekti
Samalla kopioituu palvelimella oleva muutoshistoria. Huomaa, että tämä ei kuitenkaan päivitä työkopion tiedostoja. Jos aiot tehdä muutoksia johonkin projektin tiedostoista, kannattaa päivittää tiedostot myös työkopioon. Tämä tapahtuu komennolla
$ hg update
Vaihtoehtoisesti voit käyttää pull-komennon kanssa valitsinta -u, jolloin työkopio päivitetään automaattisesti paikallisen kopion päivityksen jälkeen.
$ hg pull -u http://palvelin.example/projekti
Uuden projektin luominen
Uusi projekti luodaan hakemistoon init komennolla
$ cd projekti/ $ hg init
Tämä tekee hakemistoon uuden hakemiston nimeltä .hg, jossa Mercurial säilyttää projektin tietoja.
Tiedostojen lisääminen ja poistaminen
Tiedostoja lisätään projektiin komennolla hg add.
$ hg add sound.c input.c
Poistaminen tapahtuu vastaavasti komennolla hg rm.
$ hg rm sound.c
Tiedostojen uudelleennimeäminen tapahtuu komennolla hg rename.
$ hg rename vanha.c uusi.c
Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla hg status.
$ hg status ? TODO M main.c M graphics.c A input.c R sound.c
Merkki ennen tiedoston nimeä kertoo, mitä tiedostolle on tehty.
M = tiedostoa on muutettu
A = tiedosto on lisätty
R = tiedosto on poistettu
? = tiedostoa ei ole lisätty varastoon
Jos projektiin ei ole tehty muutoksia, status-komento ei tulosta mitään.
Muutoksien päivittäminen
Tehdyt muutokset voidaan päivittää paikalliseen varastoon komennolla
$ hg commit
Tämä avaa oletuseditorin johon voit kirjoittaa muutostapahtumalle kuvauksen. Yleensä kannattaa kirjoittaa ensimmäiselle riville lyhyt kuvaus joka yksinään pystyy kertomaan mitä muutoksia on tehty. Tämä siitä syystä, että vain ensimmäinen rivi näkyy esim. hg log -komennon tulosteessa. Muut rivit kannattaa käyttää yksityiskohtaisempaan kuvaukseen.
Jos et haluakaan tehdä muutosta, voit sulkea tekstieditorin tallentamatta tiedostoa.
Päivitykseen voi myös lisätä suoraan lyhyen kommentin käyttämällä valitsinta -m:
$ hg commit -m "Korjasin muistivuodon"
Muutoksien päivittäminen ulkoiseen varastoon tapahtuu komennolla
$ hg push http://palvelin.example/projekti
Muutoshistorian voi nähdä komentamalla
$ hg log
Työskentelyn alla olevan projektin tämänhetkiset muutokset näkee komentamalla
$ hg diff
Tämä näyttää muutokset unified diff -muodossa. Esimerkiksi revisioiden 100 ja 101 väliset muutokset voidaan nähdä komennolla
$ hg diff -r 100:101
Katso myös
Aiheesta muualla
- Mercurial Quick Start -opas (englanniksi)