Kuliax

GNU/Linux untuk Kampus

Alat Pengguna

Alat Situs


devel:vcs:hg

VCS dengan Mercurial

Halaman ini berisi informasi perintah-perintah yang umum dilakukan pada Kontrol Versi Terdistribusi Mercurial atau hg, khususnya yang berhubungan dengan proyek Kuliax.

Konfigurasi

Hal pertama yang harus kita lakukan adalah konfigurasi.

Konfigurasi hg terdapat di berkas .hgrc pada direktori home/, suntinglah dengan editor

vim ~/.hgrc
[ui]
username = stwn <stwn@kuliax>
ssh = ssh -C

Keterangan pada berkas .hgrc di atas, username yang digunakan adalah stwn dengan surel stwn@kuliax dan jika menggunakan SSH opsi yang disertakan adalah -C1)

Proxy

Untuk pengembang di belakang proxy tambahkan baris

[http_proxy]
host = proxy_address:port

Ekstensi

Untuk memperingan ketika menjalankan hg, maka ekstensi-ekstensi secara default tidak diaktifkan pada mercurial versi terkini. Aktifkan ekstensi dengan menambah “[extensions]”, contoh kita ingin mengaktifkan graphlog atau glog

[extensions]
hgext.graphlog = /usr/share/python-support/mercurial-common/hgext/graphlog.py

Persiapan

Terdapat dua pilihan untuk mendapatkan repo hg yaitu menginisialisasi pohon direktori dan berkas kita (init) atau menyalin repo hg dari server (clone).

init

Perintah ini dilakukan jika kita akan melakukan setup repositori hg pertama kali. Jika terdapat repositori yang telah ada di server terdekat, gunakan clone

hg init

Perintah ini akan menginisialisasi direktori kita sekarang menjadi repositori hg, tanda-tandanya adalah munculnya direktori .hg/.

Kita perlu melakukan konfigurasi berkas-berkas mana saja yang akan di-commit ke repo hg, untuk itu kita membuat sebuah berkas konfigurasi yang mengabaikan pola-pola tertentu

vim .hgignore
syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err
.bootstrap.swp
binary/*
binary.*
.lock
.stage*
.svn*
  
syntax: regexp
.*\#.*\#$

Umumnya jika kita melakukan clone dari server repo hg, misal milik Kuliax, di dalamnya sudah ada berkas .hgignore.

clone

Perintah ini dilakukan untuk menyalin repositori hg dari server. Untuk proyek Kuliax di code.google, kita dapat menggunakan perintah

hg clone https://kuliax.googlecode.com/hg/ kuliax

yang akan menghasilkan direktori kuliax/ berisi salinan repo Kuliax.

Operasi

parents

Untuk mengetahui status parent repo.

hg parents

status

Perintah ini digunakan untuk mengetahui status dari berkas yang ada di repositori lokal

hg status

Setelah kita mengetikkan perintah tersebut maka akan muncul baris-baris diawali dengan satu karakter tertentu, misal:

  • ?: berkas belum diketahui umumnya berkas baru
  • M: berkas dimodifikasi
  • A: berkas ditambahkan

Tanda-tanda di atas menunjukkan operasi yang akan dilakukan pada repositori mercurial ketika dilakukan commit.

Gunakan perintah less jika keluaran baris perintah status terlalu banyak

hg status|less

add

Perintah ini digunakan untuk memberikan tanda pada berkas agar saat operasi commit ditambahkan ke repositori lokal

hg add [berkas]

Umumnya perintah add dijalankan ketika pengembang ingin selektif menambahkan satu per satu berkas yang sudah ditambahkan atau dimodifikasi.

forget

Perintah ini digunakan untuk “melupakan” berkas yang sudah ditambahkan dengan perintah `hg add`, sehingga tidak ditambahkan saat commit.

remove

Perintah ini akan menambahkan berkas ke daftar tunggu proses penghapusan saat dilakukan commit.

hg remove [berkas]

mv

Perintah ini akan memindahkan/mengganti nama berkas ke nama baru/lokasi baru.

hg mv [berkas] [lokasi]

diff

Perintah ini akan membandingkan antara revisi di dalam repo.

hg diff [berkas]
hg diff -r [revisi1] -r [revisi2] [berkas]

commit

Perintah commit ditujukan untuk melakukan perubahan pada repo hg, kita harus menyertakan pesan agar orang lain, termasuk diri kita sendiri, dapat mengetahui apa yang kita ubah pada saat itu.

Contoh perintah yang umum adalah

hg commit -m "pesan perubahan"

Perintah di atas dapat dilakukan jika kita sudah melakukan operasi seperti add dan modify.

Pada proyek Kuliax untuk kepraktisan gunakan secara langsung perintah commit sekaligus melakukan operasi perubahan

  hg commit -A -m "pesan perubahan"

Contoh awal pada saat inisialisasi repo

hg commit -A -m "Init hg repo for Kuliax"

push

Perintah push dilakukan untuk menyalin perubahan repo lokal ke tempat lain, umumnya server di luar. Kuliax sendiri menggunakan code.google dan bitbucket, untuk melakukan push ke server-server tersebut kita gunakan perintah

hg push https://kuliax.googlecode.com/hg/
hg push https://bitbucket.org/stwn/kuliax

Kita akan dimintai username dan password, kecuali kita sudah menambahkan kunci publik pada server repo khususnya bitbucket.

pull

Perintah ini digunakan untuk mengambil perubahan dari repositori mercurial remote ke lokal.

Pull and update repo.

hg pull https://bitbucket.org/stwn/kuliax
pulling from https://bitbucket.org/stwn/kuliax
real URL is https://bitbucket.org/stwn/kuliax/
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 6 changes to 6 files
(run 'hg update' to get a working copy)
hg update
6 files updated, 0 files merged, 0 files removed, 0 files unresolved
hg parents
changeset:   8:6b65794a95dd
tag:         tip
user:        stwn <stwn@kuliax.org>
date:        Thu Mar 19 11:42:57 2009 +0000
summary:     fix live/ dir addition

tip

Perintah tip digunakan untuk melihat status set perubahan terakhir.

hg tip

update

Perintah ini digunakan untuk memutakhirkan direktori kerja ke revisi tertentu.

hg update

merge

Perintah ini digunakan untuk menggabungkan isi direktori repositori sekarang dengan revisi tertentu

hg merge

Umumnya perintah merge dilakukan ketika dilakukan pengambilan perubahan dengan pull, setelah itu pengembang perlu melakukan `hg status` untuk melihat status berkas, dan commit untuk menerapkan perubahan pada repositori lokal.

revert

Perintah ini digunakan untuk mengembalikan revisi berkas sebelumnya

hg revert [berkas]
rm [berkas].orig

atau

hg revert -r [REV] [berkas]

tag

Perintah ini digunakan untuk melakukan tag terhadap revisi tertentu

hg tag -r [REV] -m "Tag notes" [tag]

contoh:

hg tag -r 32 -m "Tag revision 32: 7.0rc1" 7.0rc1

branch

Branching repo.

hg branch repo-branch
hg commit -m "creating new branch of repo"
hg tip
hg parents
hg push https://bitbucket.org/stwn/kuliax

glog

Watch log in tree mode.

hg glog

serve

Serve your repo via http protocol,

hg serve -n "kuliax" -p 1234

Contoh Operasi

hg clone kuliax.sync/ kuliax
cd  kuliax
[modify here]
[when it works and you satisfied with the result]
hg push #push to kuliax.sync
cd ../kuliax.sync
hg update
hg push ssh://hg@bitbucket.org/stwn/kuliax/

Menggunakan SSH

Using Mercurial with SSH.

ssh-keygen
cat ~/.ssh/id_rsa.pub
hg push ssh://hg@bitbucket.org/stwn/kuliax/
1) data yang dikirim dan diterima melalui kanal SSH akan terkompres
devel/vcs/hg.txt · Terakhir diubah: 2010/04/16 17:28 oleh stwn