Bekerja Dengan Mercurial

Tulisan ini adalah bagian ketiga dari seri tulisan saya tentang revision control. Tulisan pertama dapat dibaca disini, dan yang kedua disini.

Setelah kita membuat repository Mercurial di Bitbucket, maka langkah selanjutnya adalah meng-clone repository tersebut ke PC lokal kita (yang kita gunakan). Untuk itu diperlukan suatu software Mercurial client. Untuk sistem operasi Windows, client yang paling mudah digunakan adalah TortoiseHg. Berbeda dengan revision control client lainnya, TortoiseHg bekerja sebagai shell extension dari Windows Explorer. Oleh karenanya, setelah anda selesai meng-install client ini pada PC anda, akan ada menu tambahan ketika kita melakukan klik kanan di Windows Explorer seperti tampak pada gambar berikut,

Buatlah sebuah folder kosong untuk meletakkan repository kita dan pilih menu TortoiseHg→Clone. Selanjutnya kita masukkan alamat dari repository Bitbucket yang sudah kita buat sebelumnya. Repository dapur-kita yang sudah saya buat beralamat di https://irsyadi@bitbucket.org/irsyadi/dapur-kita.

TortoiseHg akan meminta password dari akun Bitbucket dan setelah beberapa saat clone dari repository dapur kita selesai. Repository ini masih kosong, mari kita isi dengan satu resep yaitu telor ceplok.

module telor_ceplok (
  input wire api,
  input wire wajan,
  input wire telor
  output reg ceplok);

  always @(posedge api)
    if(!wajan)
      ceplok <= 1'b0;
    else
      ceplok <= telor;

endmodule

Agar file yang baru kita tambahkan tercatat pada record repository, maka kita perlu melakukan 2 perintah yaitu TortoiseHg→Add Files dan Hg Commit. Selalu berikan komentar setiap melakukan Hg Commit, agar kita mengetahui kondisi dari titik revisi tersebut. Setiap commit, maka kita membuat titik revisi baru yang disebut dengan changeset.

Setelah tercommit maka changeset itu telah tercatat pada repository lokal, namun belum tercatat pada repository utama di Bitbucket. Hal ini tidak menjadi masalah, bahkan merupakan kelebihan dari distributed revision control, karena kita tidak harus terus terkoneksi ke repository utama, untuk dapat bekerja dengan revision control.

Mari kita lakukan sedikit revisi pada resep telok ceplok itu dengan menambahkan sedikit garam. Setelah kita tambahkan garam, kita simpan lagi file itu. Kalau diperhatikan, pada icon file akan muncul tanda seru warna merah yang menyatakan bahwa telah terjadi perubahan pada file itu dari changeset terakhir. Kita bisa melihat perubahan apa yang telah kita lakukan dengan menggunakan TortoiseHg→Visual Diff.

Terlihat bahwa kita melakukan perubahan pada 2 baris, yang pertama adalah menambahkan baris baru dan yang kedua memodifikasi baris yang sudah ada. Inilah kekuatan utama dari bekerja dengan revision control. Kita bisa melihat perubahan apa saja yang telah kita lakukan dari waktu ke waktu. Untuk menyimpan perubahan ini, kita memakai perintah HgCommit tanpa perlu Add Files karena file ini bukan file baru. Berikan komentar yang memberikan penjelasan singkat atas perubahan yang kita lakukan untuk changeset itu.

Apabila kita kemudian merasa bahwa garam itu tidak sehat, kita bisa kembali lagi ke revisi sebelumnya dengan menggunakan Hg Repository Explorer. Pada menu Hg Repository Explorer, kita bisa melihat bahwa terdapat dua changeset. Pilih changeset yang pertama, klik kanan, dan pilih revert atau update. Jika kita memilih revert, maka kita tetap berada pada chageset yang kedua dan perubahan karena revert dianggap sebagai perubahan baru (terlihat dari icon file yang berwarna merah). Jika kita memilih update, maka kita mundur ke changeset sebelumnya. Untuk kali ini kita memilih revert dan setelah itu commit kembali agar menjadi chageset yang baru.

Seperti yang sudah saya nyatakan, setiap perubahan changeset yang kita lakukan hanya tersimpan di repository lokal PC kita saja, agar tersimpan juga ke repository utama, maka kita perlu menjalankan perintah synchronize. Pada window Hg Repository Explorer, pilih tools→synchronize, maka akan muncul window baru. Empat perintah utama pada synchronize adalah Incoming, Pull, Outgoing, dan Push.Incoming akan mencek repository utama, apakah ada perubahan yang lebih baru dari repository lokal, sedangkan perintah Pull akan mengeksekusi perubahan tersebut agar tersimpan juga di repository lokal. Outgoing berkalu sebaliknya, perintah ini mencek repository lokal kita apakah ada perubahan yang belum tersimpan di repository utama. Apabila ada, maka kita perlu menjalankan perintah Push untuk menyimpan changeset itu ke repository utama. Untuk saat ini, kita akan melakukan perintah push untuk menyimpan tiga changeset yang telah kita lakukan.

Setelah seluruh changeset ter-push, maka kita akan melihat log perubahan changeset itu di dashboard Bitbucket. Jika kita berkerja di PC lain, maka kita cukup meng-clone lagi repository utama, dan seluruh changeset yang telah kita buat juga akan terduplikasi di repository lokal yang baru itu.

Sampai disini, hampir seluruh dasar cara bekerja dengan revision control sudah saya jelaskan dan anda sudah mulai bisa bereksperimen dengannya. Apabila anda merasa terganggu dengan keharusan memasukkan password setiap mengakses repository utama, maka ada alternatif lain yaitu terkoneksi menggunakan protokol SSH. Untuk itu anda harus membuat public key dan private key sebagai metode autentifikasi pengganti password. Tutorialnya mungkin akan saya tulis lain waktu…

One Comment

  1. Posted November 3, 2016 at 5:30 pm | Permalink | Balas

    terima kasih. sangat membantu🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: