Kira-kira inilah perintah-perintah dasar kalau ingin menggunakan Bazaar.
Membuat sebuah cabang baru.
$ bzr initPerintah tersebut dijalankan di bawah sebuah direktori yang akan menjadi cabang.
Menambahkan berkas/direktori ke dalam cabang.
$ bzr add satu dua tiga ...Andai tidak ada berkas/direktori yang disebut, maka seluruh berkas atau direktori yang ada akan dimasukkan.
Menyimpan perubahan.
$ bzr commitSebuah editor akan terbuka. Tulis catatan revisi di sana. Simpan lalu keluar dari editor agar perubahan tersimpan ke dalam cabang Bazaar.
Menghapus berkas/direktori.
Hapus saja berkas/direktori yang ingin dihapus, lalu jalankan
bzr commit.
Sebenarnya sudah itu saja perintah-perintah dasarnya. Namun rasanya kurang lengkap kalo tidak dilanjutkan dengan beberapa perintah dasar-namun-sedikit-lanjutan yang juga berkaitan dengan pengerjaan secara bersama-sama.
Membuat cabang baru dari sebuah cabang Bazaar
$ bzr branch utama baruCabang Bazaar bernama
utamaakan disalin menjadi sebuah cabang baru bernamabaru.Menarik perubahan dari cabang induk.
$ bzr pull http://repo/bzr/utama/Ada kalanya perubahan gagal ditarik karena cabang induk tersebut telah mengalami perubahan. Jika hal ini yang terjadi, maka operasi yang harus dilakukan adalah penggabungan cabang.
$ bzr pull http://sebuah/cabang/ bzr: ERROR: These branches have diverged. Use the merge command to reconcile them.Menggabungkan cabang yang ada dengan cabang yang lain.
$ bzr merge http://repo/bzr/lain/Jika beruntung, operasi dapat berjalan lancar tanpa ada gangguan apa-apa.
$ bzr merge http://sebuah/cabang/ ... All changes applied successfully.Penggabungan cabang dengan
bzr mergeini tidak langsung disimpan menjadi revisi baru. Oleh karena itu perlu dilakukan penyimpanan denganbzr commit.Konflik bisa saja terjadi pada saat menggabungkan cabang. Hal ini disebabkan karena ada berkas sama yang mengalami perubahan secara terpisah pada kedua buah cabang.
$ bzr merge http://sebuah/cabang/ ... Text conflict in sebuahberkas 1 conflicts encountered.Berkas yang konflik biasanya akan ditandai dengan akhiran
.BASE,.OTHER,.THIS. Berkas yang diakhiri.BASEadalah versi dasar bersama dari kedua cabang yang mengalami konflik. Berkas dari versi cabang yang ada ditandai dengan akhiran.THISsedangkan berkas dengan akhiran.OTHERadalah versi dari cabang lain yang digabungkan.induk +--> satu ----+--> satu --> | / +--> dua --'Sebagai ilustrasi, andai ada cabang bernama
indukyang disalin menjadi dua cabang baru, yaitusatudandua. Ada sebuah berkas bernamaindex.htmlpada cabangindukyang kemudian dimodifikasi secara terpisah pada cabangsatudandua. Ketika cabangsatuingin melakukan penggabungan cabang dengan cabangdua, maka berkasindex.htmltadi akan mengalami konflik karena berkas tersebut telah mengalami modifikasi.Berkas
index.htmlasli yang berasal dari cabangindukakan diberi namaindex.html.BASE. Berkas yang berasal dari cabangduaakan diberi namaindex.html.OTHERsedangkanindex.html.THISberasal dari cabangsatu, yaitu cabang yang sedang dikerjakan.Cabang yang ingin digabungkan haruslah berasal dari satu cabang induk yang sama. Jika tidak, maka penggabungan tidak dapat dilakukan karena tidak dapat ditelusuri perubahan yang terjadi.
$ bzr merge http://cabang/tetangga/ bzr: ERROR: Branches have no common ancestor, and no merge base revision was specified.Mengatasi konflik.
$ bzr resolve berkas-konflikSebagai contoh ada berkas konflik bernama
index.html. Perbaikilah berkas tersebut lalu jalankan$ bzr resolve index.htmlBerkas lain
.BASE,.THIS, dan.OTHERakan dihapus setelah konflik diatasi.Menyimpan perubahan ke cabang lain.
$ bzr push bzr+ssh://repo/bzr/utama/Cabang yang ingin disimpan haruslah merupakan kelanjutan dari cabang tujuan. Jika tidak, maka proses penyimpanan akan gagal.
$ bzr push bzr+ssh://repo/bzr/utama/ bzr: ERROR: These branches have diverged. Try using "merge" and then "push".Oleh karena itu, cabang yang ada harus disinkronsasi dengan cabang tujuan tersebut dengan menjalankan
bzr mergeyang kemudian diikuti denganbzr pushuntuk mengulangi penyimpanan.Seperti halnya menggabungkan cabang, menyimpan cabang yang ingin disimpan ke cabang lain haruslah berasal dari satu cabang induk yang sama.
Membatalkan perubahan.
$ bzr revert sebuah-berkasAndai kita memodifikasi berkas bernama
index.htmlnamun sampai suatu ketika kita ingin membatalkan perbuahan tersebut dan mengembalikkannya ke versi terakhir yang tersimpan dalam cabang bzr. Maka kita cukup menjalankan perintah berikut$ bzr revert index.htmlSebuah berkas bernama
index.html.~1~akan terbentuk dan berisi perubahan yang sempat kita lakukan. Selain itu, berkasindex.htmlakan berubah isinya sesuai dengan versi terakhir yang ada.Jika berkas
index.htmlkita hapus lalu kita menjalankanbzr revert index.html, maka berkasindex.htmlakan muncul kembali dengan isi dari versi terakhir. Berkasindex.html.~1~tidak akan terbentuk karena tidak ada berkas perubahan.Jadi, andai suatu ketika merasa perubahan yang dilakukan sangat kacau dan ingin diulang semua, hapus saja semua berkas yang ada lalu panggil
bzr revert.$ rm -rf * $ bzr revert
Sepertinya itu dulu. Kalau sudah paham perintah-perintah di atas, saya rasa sudah bisa lah menggunakan Bazaar untuk keperluan sehari-hari termasuk menjadi pengembang BlankOn =D
Oh iya. Cabang Bazaar ini memang bisa dianggap sebagai satu direktori beserta isinya. Sehingga kalau ingin menyalin maupun mengamankan sebuah cabang Bazaar, cukup simpan direktori tersebut. Lebih tepatnya, direktori .bzr yang ada di dalamnya. Direktori .bzr tersebut berisi seluruh catatan revisi yang dilakukan dari awal cabang dibuat.
1 komentar:
Om, makasih perintah dasarnya... tanya : ada nggak gambaran virtual tentang bazaar, biar bisa ngebayangin di benak niih... bisa dalam bentuk diagram, atau analogi sehari2...
Poskan Komentar