Ero sivun ”Mercurial” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Todella suppea käyttöohje. Laajennan myöhemmin.)
 
Ei muokkausyhteenvetoa
 
(39 välissä olevaa versiota 11 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Mercurial on kevyt ja nopea [[versionhallintajärjestelmä]]. Vaikka Mercurial on suhteellisen uusi, monet ohjelmistokehittäjät (kuten Mozilla) ovat vaihtaneet järjestelmänsä Mercurialiin.
{{Ohjelma
| 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]
}}


== Asiakasohjelma ==
'''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.
Mercurialia käytetään komennolla <tt>hg</tt>.


* Olemassaolevasta projektista voi tehdä kopion seuraavasti:
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.


hg clone http://palvelin.example/projekti
== Asennus ==


Ylläoleva komento hakee palvelimelta kopion kohteesta "projekti" ja tallentaa sen uuteen samannimiseen hakemistoon.
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.


* Projektin päivittäminen
=== Easy Install ===


hg pull http://palvelin.example/projekti
Mercurialin asennus tai päivitys uusimpaan versioon tapahtuu komennolla:


* Uuden projektin luominen
$ easy_install -U mercurial


cd projekti/
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:
hg init


[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
Se hakee palvelimelta kopion kohteesta "projekti" ja tallentaa sen uuteen samannimiseen hakemistoon.
Projektin tiedostot päivitetään palvelimelta 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ää <tt>pull</tt>-komennon kanssa valitsinta <tt>-u</tt>, 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 komennolla <tt>init</tt>
$ cd projekti/
$ hg init
Tämä tekee hakemistoon uuden hakemiston nimeltä <tt>.hg</tt>, jossa Mercurial säilyttää projektin tietoja.
Tämä tekee hakemistoon uuden hakemiston nimeltä <tt>.hg</tt>, jossa Mercurial säilyttää projektin tietoja.


* Tiedostojen lisääminen projektiin
=== Tiedostojen lisääminen ja poistaminen ===
Tiedostoja lisätään projektiin komennolla <tt>add</tt>.
$ 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>).
$ hg remove sound.c
 
Tiedostojen uudelleennimeäminen tapahtuu komennolla <tt>rename</tt>.
$ hg rename vanha.c uusi.c
 
Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla <tt>status</tt>.
$ 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<br />
A = tiedosto on lisätty<br />
R = tiedosto on poistettu<br />
? = tiedostoa ei ole lisätty varastoon
 
Jos projektiin ei ole tehty muutoksia, <tt>status</tt>-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. <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"
 
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. Tämä vastaa [[diff]]-ohjelman tulostetta <tt>-u</tt>-valitsimella varustettuna.
 
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
 
== Katso myös ==
*[[CVS]]
*[[Darcs]]
*[[Git]]
*[[Subversion]]
*[[Bazaar]]


hg add tiedosto1 tiedosto2
== Aiheesta muualla==
*[http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart Mercurial Quick Start] – pikaopas Mercurialin käyttämiseksi (englanniksi)
*[http://hgbook.red-bean.com/ Mercurial: The Definitive Guide] – kattava ja ajan tasalla pidetty käsikirja (englanniksi)


== Linkkejä ==
[[Luokka:Kehitystyökalut]]
[http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart Mercurial Quick Start] (englanniksi)

Nykyinen versio 29. kesäkuuta 2017 kello 18.12

Mercurial
Mercurial-logo
Käyttöliittymä Teksti
Lisenssi GPLv2+
Kotisivu www.mercurial-scm.org

Mercurial on Pythonilla 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-projekteilla ei ole CVS:n tai Subversionin 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.

Asennus[muokkaa]

Mercurial löytyy useimpien jakeluiden paketinhallinnasta nimellä mercurial. Jos kuitenkin haluat ohjelmasta uusimman version, saatat joutua joko asentamaan ohjelmiston käsin tai käyttämään Easy Install -ohjelmaa, joka on tarkoitettu Python-ohjelmien asennukseen.

Easy Install[muokkaa]

Mercurialin asennus tai päivitys uusimpaan versioon tapahtuu komennolla:

$ easy_install -U mercurial

Easy Install asentaa Mercurialin skriptin (hg) ja kirjastot niihin hakemistoihin, joka on määritelty tiedostossa .pydistutils.cfg. Voit esimerkiksi määrittää hakemistoksi kotihakemistosi, jolloin et tarvitse 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[muokkaa]

$ 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 --home=hakemisto:

$ python setup.py install --home=$HOME/paketit/

Tällöin tarvittavat binäärit ja kirjastot asentuvat hakemistoihin $HOME/paketit/bin/ ja $HOME/paketit/lib/.

Ohjelman peruskäyttö[muokkaa]

Mercurialia käytetään komennolla hg. Ohjelman sisäiset komennot saa listattua komennolla hg help. Aliakset saa näkyviin käyttämällä help-komennon kanssa -v-valitsinta. Yksittäisen komennon käyttöohjeen näkee komennolla hg help komento (esim. hg help clone).

Olemassa olevan projektin tuominen[muokkaa]

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

Uusi projekti luodaan komennolla init

$ cd projekti/
$ hg init

Tämä tekee hakemistoon uuden hakemiston nimeltä .hg, jossa Mercurial säilyttää projektin tietoja.

Tiedostojen lisääminen ja poistaminen[muokkaa]

Tiedostoja lisätään projektiin komennolla add.

$ hg add sound.c input.c

Jos add-komennolle ei anneta yhtään tiedostonimeä, Mercurial lisää kaikki nykyisen hakemiston tiedostot varastoon.

Poistaminen tapahtuu vastaavasti komennolla remove (lyhyemmin rm).

$ hg remove sound.c

Tiedostojen uudelleennimeäminen tapahtuu komennolla rename.

$ hg rename vanha.c uusi.c

Paikallisessa varastossa olevat muokatut tiedostot voi nähdä komennolla 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[muokkaa]

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. 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. Tämä vastaa diff-ohjelman tulostetta -u-valitsimella varustettuna.

Käyttämällä -t-valitsinta voidaan nähdä revisioiden väliset muutokset. Esimerkiksi revisioiden 100 ja 101 väliset muutokset näet komennolla

$ hg diff -r 100:101

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]