Buat branch
pertama yg perlu dilakukan buat 3 folder di dalam folder project, yaitu: branches, tags dan trunk
branching -- trunk
-- branches
-- tags
kemudian taruh project anda di dalam folder trunk, folder trunk ini akan digunakan sebagai kode stabil yang digunakan di production server.
branching -- trunk -- app
-- config
-- db
-- dll..
-- branches
-- tags
commit, lalu klik kanan di folder trunk, pilih menu TortoiseSVN>Branch/tag ubah To URL menjadi "../branches/staging", tambahkan message kalo perlu, dan OK.
setelah selesai update folder staging, maka staging akan ditambahkan
branching -- trunk -- app
-- config
-- db
-- dll..
-- branches -- staging -- app
-- config
-- dll..
-- tags
folder staging ini digunakan untuk kode staging server, biasa saia gunakan untuk kode2 yg perlu ditest atau dicek oleh klien sebelum masuk production.
Merge
setelah melakukan banyak update2 di staging, dan klien menyatakan ok untuk suatu update/feature agar di-deploy ke production, kita dapat dengan mudah menggunakan fitur merge.
Perhatian! untuk mempermudah merging, ikuti aturan commit di akhir post ini..
pastikan fitur yg akan di merge sudah di commit, kemudian klik kanan di folder trunk, pilih menu TortoiseSVN>Merge, pilih "Merge a range of revisions", masukkan url staging dalam URL to merge from, dan tentukan revision dari fitur yg akan di-merge, sebaiknya gunakan show log.
dalam log pilih revision yang akan di-merge, revision yang sudah pernah di-merge akan berwarna abu2, next lalu merge
stelah selesai periksa kode yang ditambahkan, bila ada kesalahan dalam memilih revision gunakan revert pada trunk. sebaiknya jangan pernah secara langsung merubah trunk, kalau ada kesalahan dalam kode, tambahkan perbaikan di staging dan merge ke trunk.
commit dan selesai.
Tambahan
beberapa tambahan yang perlu diperhatikan:
- Hindari meng-edit trunk secara langsung
- Tambahkan message yang jelas dalam setiap commit di staging
- Usahakan agar setiap update yang ditambahkan di staging selesai dalam sesedikit mungkin commit, kalau fitur yang ditambahkan cukup besar dan rumit, gunakan feature branch (akan dibahas di post berikutnya)
- Jangan pernah menambahkan 2 fitur dalam 1 revision, pisahkan dalam revision yang berbeda, akan menyulitkan pada saat memilih revision untuk di-merge nantinya
ok segitu dulu, post berikutnya saia akan membahas feature branches dan tags
mantap gan, terutama tip-tip tambahannya.
BalasHapusAda dua 'ilmu' dalam trunking branching ini. Yang satu, trunk adalah production.
BalasHapusYang satu lagi, tags (anak dari branch) yang menjadi production. Contoh, setiap minggu bikin branch baru, dan setiap kali push ke production bikin tag baru. Dan setiap ada urgent bug juga bikin tag baru. Yang di deploy adalah tag.
Yang mana yang dipilih kamu Roy?
@Pak Wil:
BalasHapusthx ^_^
@Pak Ikin:
mungkin yang pertama, trunk saia gunakan sebagai production, sedangkan tags saia gunakan untuk backup suatu state production yang stabil, misalkan sbelum mengimplementasikan feature yang besar/rumit, maka saia membuat tag dari production terlebih dahulu, jd kalo ada masalah yang sulit diperbaiki, state production bisa dikembalikan dari tag tadi.