Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| {{Ohjelma
| | Mercurial on 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 tehty [[Python]]illa ja se tukee hajautettua versionhallintaa. |
| | nimi=Mercurial
| |
| | kuva=[[Image:mercurial-logo.png|Mercurial-logo]]
| |
| | kuvateksti=
| |
| | käyttöliittymä=Teksti
| |
| | lisenssi=[[GPLv2+]]
| |
| | kotisivu=[https://www.mercurial-scm.org/ www.mercurial-scm.org]
| |
| }}
| |
|
| |
|
| '''Mercurial''' on [[Python]]illa ja [[C]]:llä toteutettu kevyt ja nopea hajautettu [[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-projekteilla ei ole [[CVS]]:n tai [[Subversion]]in tapaan yhtä keskeistä tietovarastoa (engl. ''repository'') jonne jokainen kehittäjä tekee muutokset, vaan kaikki tietovarastot 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 (engl. ''branch'') omalle koneelleen ja yhdistää muutokset omaan paikalliseen kopioonsa.
| | == Mercurialin käyttö == |
| | Mercurialia käytetään komennolla <tt>hg</tt>. |
|
| |
|
| == Asennus == | | === Olemassaolevan projektin tuominen === |
| | | Olemassaolevasta projektista voi tehdä paikallisen kopion komennolla |
| Mercurial löytyy useimpien jakeluiden [[paketinhallinta|paketinhallinnasta]] nimellä <tt>mercurial</tt>. Jos kuitenkin haluat ohjelmasta uusimman version, saatat joutua joko asentamaan ohjelmiston käsin tai käyttämään [http://peak.telecommunity.com/DevCenter/EasyInstall Easy Install] -ohjelmaa, joka on tarkoitettu Python-ohjelmien asennukseen.
| |
| | |
| === Easy Install ===
| |
| | |
| Mercurialin asennus tai päivitys uusimpaan versioon tapahtuu komennolla:
| |
| | |
| $ easy_install -U mercurial
| |
| | |
| Easy Install asentaa Mercurialin skriptin (<tt>hg</tt>) ja kirjastot niihin hakemistoihin, joka on määritelty tiedostossa <tt>.pydistutils.cfg</tt>. Voit esimerkiksi määrittää hakemistoksi kotihakemistosi, jolloin et tarvitse [[Root|pääkäyttäjä]]n oikeuksia. Tiedoston sisältö voi olla esimerkiksi seuraavanlainen:
| |
| | |
| [install]
| |
| install_lib = /home/kayttaja/lib/python
| |
| install_scripts = /home/kayttaja/bin
| |
| | |
| === Asentaminen käsin kotihakemistoon ===
| |
| | |
| $ cd $HOME
| |
| $ wget http://www.selenic.com/mercurial/release/mercurial-VERSIO.tar.gz # esim. mercurial-1.1.1.tar.gz
| |
| $ tar -xzvf mercurial-VERSIO.tar.gz
| |
| $ cd mercurial-VERSIO
| |
| $ python setup.py install
| |
| | |
| Kun haluat asentaa itse käännetyt ohjelmistot ja kirjastot johonkin tiettyyn hakemistoon, voit käyttää valitsinta <tt>--home=hakemisto</tt>:
| |
| | |
| $ python setup.py install --home=$HOME/paketit/
| |
| | |
| Tällöin tarvittavat binäärit ja kirjastot asentuvat hakemistoihin <tt>$HOME/paketit/bin/</tt> ja <tt>$HOME/paketit/lib/</tt>.
| |
| | |
| == Ohjelman peruskäyttö ==
| |
| Mercurialia käytetään komennolla <tt>hg</tt>. Ohjelman sisäiset komennot saa listattua komennolla <tt>hg help</tt>. Aliakset saa näkyviin käyttämällä <tt>help</tt>-komennon kanssa <tt>-v</tt>-valitsinta. Yksittäisen komennon käyttöohjeen näkee komennolla <tt>hg help komento</tt> (esim. <tt>hg help clone</tt>).
| |
| | |
| === Olemassa olevan projektin tuominen ===
| |
| Olemassa olevasta projektista voi tehdä paikallisen kopion komennolla
| |
| $ hg clone http://palvelin.example/projekti | | $ hg clone http://palvelin.example/projekti |
| Se hakee palvelimelta kopion kohteesta "projekti" ja tallentaa sen uuteen samannimiseen hakemistoon. | | Se hakee palvelimelta kopion kohteesta "projekti" ja tallentaa sen uuteen samannimiseen hakemistoon. |
|
| |
|
| Projektin tiedostot päivitetään palvelimelta komennolla | | Projektin tiedostot päivitetään komennolla |
| $ hg pull http://palvelin.example/projekti | | $ hg pull http://palvelin.example/projekti |
|
| |
|
Rivi 61: |
Rivi 22: |
| === Uuden projektin luominen === | | === Uuden projektin luominen === |
|
| |
|
| Uusi projekti luodaan komennolla <tt>init</tt> | | Uusi projekti luodaan hakemistoon <tt>projekti</tt> komennolla |
| $ cd projekti/ | | $ cd projekti/ |
| $ hg init | | $ hg init |
Rivi 67: |
Rivi 28: |
|
| |
|
| === Tiedostojen lisääminen ja poistaminen === | | === Tiedostojen lisääminen ja poistaminen === |
| Tiedostoja lisätään projektiin komennolla <tt>add</tt>. | | Tiedostoja lisätään projektiin komennolla <tt>hg add</tt>. |
| $ hg add sound.c input.c | | $ hg add sound.c input.c |
| Jos <tt>add</tt>-komennolle ei anneta yhtään tiedostonimeä, Mercurial lisää kaikki nykyisen hakemiston tiedostot varastoon.
| |
|
| |
|
| Poistaminen tapahtuu vastaavasti komennolla <tt>remove</tt> (lyhyemmin <tt>rm</tt>). | | Poistaminen tapahtuu vastaavasti komennolla <tt>hg rm</tt>. |
| $ hg remove sound.c | | $ hg rm sound.c |
|
| |
|
| Tiedostojen uudelleennimeäminen tapahtuu komennolla <tt>rename</tt>.
| | Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla <tt>hg status</tt>. |
| $ hg rename vanha.c uusi.c
| |
| | |
| Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla <tt>status</tt>. | |
| $ hg status | | $ hg status |
| ? TODO | | ? TODO |
Rivi 91: |
Rivi 48: |
| 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 === |
| Tehdyt muutokset voidaan päivittää paikalliseen varastoon komennolla | | Tehdyt muutokset voidaan päivittää paikalliseen varastoon komennolla <tt>hg commit</tt>. Jos haluat lisätä päivitykseen kommentin, käytä valitsinta <tt>-m</tt>: |
| $ 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. <tt>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>:
| |
| $ hg commit -m "Korjasin muistivuodon" | | $ hg commit -m "Korjasin muistivuodon" |
|
| |
|
Rivi 114: |
Rivi 62: |
| $ hg diff | | $ hg diff |
|
| |
|
| Tämä näyttää muutokset ''unified diff'' -muodossa. Tämä vastaa [[diff]]-ohjelman tulostetta <tt>-u</tt>-valitsimella varustettuna. | | Tämä näyttää muutokset unified diff -muodossa. Esimerkiksi revisioiden 100 ja 101 väliset muutokset voidaan nähdä komennolla |
| | |
| Käyttämällä <tt>-t</tt>-valitsinta voidaan nähdä revisioiden väliset muutokset. Esimerkiksi revisioiden 100 ja 101 väliset muutokset näet komennolla
| |
| $ hg diff -r 100:101 | | $ hg diff -r 100:101 |
|
| |
|
Rivi 124: |
Rivi 70: |
| *[[Git]] | | *[[Git]] |
| *[[Subversion]] | | *[[Subversion]] |
| *[[Bazaar]]
| |
|
| |
|
| == Aiheesta muualla== | | == Aiheesta muualla== |
| *[http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart Mercurial Quick Start] – pikaopas Mercurialin käyttämiseksi (englanniksi) | | *[http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart Mercurial Quick Start] -opas (englanniksi) |
| *[http://hgbook.red-bean.com/ Mercurial: The Definitive Guide] – kattava ja ajan tasalla pidetty käsikirja (englanniksi)
| |
|
| |
|
| [[Luokka:Kehitystyökalut]] | | [[Luokka:Kehitystyökalut]] |