Buat para penggiat koding atau programmer pasti udah ga asing sama istilah SVN atau GIT. Yap, itu merupakan salah dua dari managemen repositori. Apa itu repositori? silahkan googling :)) Intinya adalah alat untuk mengatur dan mengelola file bersama melalui penggunaan versi. Berikut penjelasan dari Wikipedia:
Apache Subversion (often abbreviated SVN, after the command name svn) is a software versioning and revision control system distributed as free software under the Apache License. Developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. –Wikipedia
Saya baru kenal SVN ini di salah satu kuliah dulu, tapi belum ngerti tujuan dan manfaatnya. Tapi setelah mulai ikut proyek di software house salah satu senior, saya akhirnya merasakan sekali manfaat dari SVN ini. Ketika mengerjakan proyek, seringnya suatu web app itu dikerjakan oleh beberapa orang. Ada yang mengerjakan modul A, ada yang mengerjakan modul B, dsb. Nah masalah mulai timbul ketika ada bagian yang harus dikerjakan bersama-sama, atau ada bagian yang saling terkait. Ketika programmer X menulis file J, kemudian programmer Y menulis file J juga, disitulah masalah muncul. Akan ada perbedaan isi dari file J. Disini lah SVN dibutuhkan.
SVN dapat mengatur file-file tersebut dengan namanya versioning atau penggunaan versi. Dan ketika file yang sama bentrok, akan dilihat perbedaannya. Misal dari programmer A menuliskan fungsi login, sedangkan programmer B menuliskan fungsi logout, maka SVN akan mengatur apabila tidak bentrok, maka akan ditambakan funsi baru. Jika bentrok, maka akan digabung (merge) dan si programmer yang memilih sendiri mana kode yang akan dipakai, mana yang akan dibuang. Fitur utama SVN ini biasanya yang digunakan hanya 3: Checkout, Commit, Update. Checkout digunakan untuk mengambil file-file proyek dari repositori untuk pertama kalinya. Jika kita mengubah file dan ingin meng-upload kembali ke repo makan digunakan Commit. Jika ingin melakukan pembaruan di proyek lokal maka digunakan Update. Banyak juga fitur lainnya di SVN, seperti Blaming. Fitur Blaming ini intinya menyalahkan versi file yang di-commit si programmer jika tidak sesuai permintaan. Kasian ya wkwkwk
Seiring waktu berjalan, semakin dibutuhkan private SVN server. Karena proyek-proyek web app di komputer saya ini banyak sekali. Dari yang jaman kuliah sampai sekarang. Terutama proyek yang bersifat personal, itu sayang sekali kalau sampai hilang. Entah hilang karena drive rusak, tidak sengaja kehapus permanen, komputer dicuri, bencana alam, dll, backup proyek secara online sangat diperlukan. Apalagi sekarang saya menggunakan banyak perangkat. Jadi ngoding di perangkat berbeda-beda tidak perlu pake metode flashdisk yang colok-copy-cabut-colok-paste-cabut (ribet kan?). Iya kalau flashdisk-nya terbawa, kalau ketinggalan kan berabe.
Beberapa hari yang lalu saya iseng googling tentang penyedia hosting svn di indonesia. Hasilnya sedikit sekali. Saya lihat di halaman pertama hanya ada 2 penyedia hosting yang menyediakan paket svn. Jadilah salah satunya saya pilih dengan paket space 500 mb, unlimited bandwidth, unlimited repo, unlimited user seharga 285k /tahun. Dan akhirnya punya private SVN server juga #yeay
Selamat pagi, Mentari Minggu Pagi.
*Note: Sebenarnya banyak penyedia SVN server, tapi tidak private alias open source alias kode kita bisa dilihat orang lain. Ada juga penyedia private SVN server seperti springloops. Springloops menyediakan yang free juga sebesar 100 mb tapi hanya boleh satu repo saja. Bisa diakali memang, 1 email 1 repo. Tapi kalau butuh 10 masa harus punya 10 email gitu? Ribet kan.