Ini adalah dokumen versi lama!
Halaman ini berisi informasi perintah-perintah yang umum dilakukan pada Kontrol Versi Terdistribusi Mercurial atau hg, khususnya yang berhubungan dengan proyek Kuliax.
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)
Terdapat dua pilihan untuk mendapatkan repo hg yaitu menginisialisasi pohon direktori dan berkas kita (init) atau menyalin repo hg dari server (clone).
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.
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.
Untuk mengetahui status parent repo.
hg parents
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:
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
Perintah ini digunakan untuk memberikan tanda pada berkas agar saat operasi commit ditambahkan ke repositori lokal
hg add
Umumnya perintah add dijalankan ketika pengembang ingin selektif menambahkan satu per satu berkas yang sudah ditambahkan atau dimodifikasi.
Perintah ini akan menambahkan berkas ke daftar tunggu proses penghapusan saat dilakukan commit.
hg remove [berkas]
Perintah ini akan memindahkan/mengganti nama berkas ke nama baru/lokasi baru.
hg mv [berkas] [lokasi]
Perintah ini akan membandingkan antara revisi di dalam repo.
hg diff [berkas]
hg diff -r [revisi1] -r [revisi2] [berkas]
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"
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.
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
Perintah tip digunakan untuk melihat status set perubahan terakhir.
hg tip
Perintah ini digunakan untuk memutakhirkan direktori kerja ke revisi tertentu.
hg update
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.
Perintah ini digunakan untuk mengembalikan revisi berkas sebelumnya
hg revert [berkas]
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
Watch log in tree mode.
hg glog
Serve your repo via http protocol,
hg serve -n "kuliax" -p 1234
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/
Using Mercurial with SSH.
ssh-keygen cat ~/.ssh/id_rsa.pub hg push ssh://hg@bitbucket.org/stwn/kuliax/