Kami masih menggunakan Subversion untuk kendali revisi (revision control) dokumen, baik kode perangkat lunak atau dokumentasi. Selain belum digunakan untuk banyak penulis, pekerjaan tersebut baru berpindah-pindah dari server Subversion di kantor dan komputer pribadi. Hubungan server dan klien Subversion dilakukan lewat Apache dan modul WebDAV.
Mengikuti dokumen Subversion yang lengkap, Version Control With Subversion, atau “Kitab Subversion”, saya mengusulkan penggunaan kode revisi trunk
dan branches
dalam perkembangan dokumen. Aturan sederhana:
trunk
berisi cabang utama pengembangan yang berjalan terus. Pengambilan berkas kondisi terakhir (checkout
) dilakukan dari cabang ini.branches
berisi kumpulan salinan setiap titik tertentu pengembangan yang dianggap signifikan (milestone). Setiap titik penting revisi tersebut diberi nama khas dan tetap disimpan di bawahbranches
.
Pengembang yang ingin mengambil revisi tertentu dapat mengambil dari koleksi di bawah branches
.
Pengaturan kewenangan:
- semua pengembang bebas membaca dan menulis di
trunk
. Keterangan pekerjaan pada saat mengembalikan (commit
) ke repositori sangat dianjurkan. - manajer pekerjaan yang bertanggung jawab menetapkan sebuah versi dan menyalinkan ke bawah
branches
dengan nama tertentu. Di buku disebutkan nama ini dapat dilihat sebagai tag.
Dapatkah kami tim pengembang cukup disiplin dan konsisten dengan aturan di atas? Ini juga perlu kendali!
di tempat saya dulu trunk dijaga sama seorang “lead developer”, pengembang lain gak boleh sembarangan nulis di trunk kalo gak bos ngamuk-ngamuk. pengembang hanya boleh baca dan tulis di branch-nya sendiri dan kemudian sang “lead developer”lah yg nantinya nge-merge (sekalian mem-filter) branch pengembang ke trunk. dan tag biasanya diambil dari trunk untuk di-realese.
Disiplin adalah hal besar yang berat di lakukan.
Pengalaman saya nih mas amal, bekerja dengan beberapa team member cukup merepotkan. Adapun cara memakai SVN ditempat kita sebagai berikut : - Setiap developer memegang satu modul, sehingga dia bertanggungjawab terhadap isi modul-nya, termasuk yang di svn - Semua developer bekerja di trunk - Deploy dilakukan oleh team leader
Hampir semuanya tidak memiliki kedisiplinan untuk : - melakukan commit secara rutin di akhir hari - memberikan comment di setiap commit - code yang dicommit masih banyak “garbage”-nya. - masih ada team member yang mendeploy modulenya sendiri tanpa sepengetahuan team leader - branch kurang dioptimalkan untuk “simulasi”