Konfigurasi Server Local Subversion

Pada postingan sebelumnya telah kita bahas instalasi Subversion di Ubuntu. Nah sekarang kita akan mencoba membuat Subversion milik kita tadi dapat diakses oleh komputer lain tapi masih satu jaringan. Saat ini kita akan menggunakan fasilitas bawaan dari Subversion yaitu svnserve.
Sekarang kita akan mencoba step by step mengkonfigurasi Server Subversion dan akan kita coba untuk men-checkout dari NetBeans.

 
Langkahnya :

  1. Install Subversion.
  2. Setelah Subversion terinstall maka kita harus membuat repository project. Kita contohkan repositori kita berada pada directori /opt/repo/.
  3. sudo svnadmin create /opt/repo/

  4. Buka directory /opt/repo/ dan kita lihat apa saja yang ada didalamnya.
  5. cd /opt/repo/

    Ternyata ada 4 directory yang telah dibuat yaitu conf, db, hooks, lock dan ada beberapa file. Sekarang kita fokuskan pada direktori conf sedangkan detail untuk direktori yang lain silahkan baca di sini.

  6. Di dalam direktori conf terdapat 3 buah file yaitu auntz, passwd dan svnserver.conf. Sekarang kita buka file snvserver.conf menggunakan text editor.
  7. sudo pico /opt/repo/conf/svnserve.conf

    Ada beberapa bagian yang perlu diperhatikan yaitu [general] dan [sasl]. General berisi konfigurasi umum seperti password dan autentikasi sedangkan sasl berisi konfigurasi SASL (Cyrus Simple Authentication and Security Layer).

  8. Hilangkan tanda pagar pada bagian anon-access=read kemudian ganti read menjadi write. Dengan konfigurasi ini maka repositori kita dapat diakses oleh anonimouse user. Kemudian coba kita jalankan svnserv yang merujuk pada repositori ini.
  9. sudo svnserve -d -r /opt/repo/

    Option -d memastikan bahwa svnserve akan berjalan sebagai daemon sedangkan option -r menunjukkan bahwa direktori yang di publish adalah /opt/repo/.
    Apabila muncul error svnserve: Can't bind server socket: Address already in use itu berarti daemon svnserve telah di jalankan dan harus dimatikan terlebih dahulu. Untuk mematikannya kita harus menggunakan fungsi kill. Untuk melihat id proses dari svnserve kita bisa menggunakan command ps -A kemudian cari  svnserver, pada kolom pertama akan ditemui nomor PID,panggil kill [no pid] untuk mematikan.

  10. Sekarang kita akan mencoba men-checkout repository tersebut dari NetBeans. Pilih Versioning=>Subversion=>Checkout. Masukkan svn://localhost/ pada Repository URL, kosongkan username dan password kemudian klick Next. Kemudian pilih Working Direktori pada bagian Local Folder kemudian pilih Next.
  11. Karena repository yang kita buat masih kosong maka NetBeans menanyakan apakah kita ingin membuat project baru.
  12. Buat sebuah project baru dan pastikan project tersebut berlokasi pada working direktori yang telah kita tentukan sewaktu checkout.
  13. Apabila proses checkout sudah benar maka pada project baru yang dibuat akan terdapat icon kecil berwarna biru.
  14. Icon berwarna biru menandakan bahwa ada bagian project yang telah diubah tetapi belum di Commit atau di masukkan dalam repository. Klik kanan pada project kemudian pilih Subversion=>Commit. Maka icon-icon berwarna biru akan hilang menandakan bahwa source project telah di Commit atau telah dimasukkan dalam repository.

  15. Untuk membuktikan bahwa source project kita telah ada pada repository. Sekarang kita DELETE project kita dari NetBeans yaitu Klick Kanan dan delete. Pastikan untuk men-check option “Also delete source ……” dan pastikan juga semua directori project yang berada pada working directory telah terhapus.
  16. Sekarang ulangi checkout seperti pada langkah 6. Kali ini karena sudah ada project yang berada pada repository maka pilihan yang dimunculkan oleh NetBeans bukan lagi “Create Project….” tetapi “Open Project”.

  17. Setelah kita men-click Open Project maka project yang telah kita delete sebelumnya akan terbuka kembali dan Source pada working directory yang telah di delete akan muncul kembali.

  18. Untuk mencoba buat satu buah project lagi dan pastikan lokasi project tersebut berada pada Working Directory maka pada project yang baru itu juga akan muncul icon-icon berwarna biru seperti pada langkah 9. Ini dikarenakan semua project yang ditempatkan pada working directory oleh NetBeans akan dianggap sebagai project yang akan dimasukkan dalam repository.

Pada konfigurasi diatas semua orang dapat dengan leluasa mengakses repository. Nah bagaimana kalau kita ingin hanya orang-orang tertentu saja yang dapat mengakes repository.

Sekarang kita kembali ke directory konfigurasi seperti pada langkah 3 diatas dan buka file svnserve.conf.

Pada file tersebut kita telah melakukan perubahan yaitu dengan mengaktifkan (menghilangkan tanda #) baris anon-access=read dan mengganti isinya dengan write. Baris anon-access merupakan konfigurasi yang menentukan tingkat akses user anonymos (user tanpa autentikasi) apakah hanya read, write atau none. Sebagai informasi konfigurasi default pada baris ini adalah read dan hak akses write disini berarti user dapat membaca maupun menulis pada repository (read/write). Sedangkan pada baris realm merupakan nama dari repositori.

Coba kita lihat baris auth-access, disini merupakan konfigurasi untuk akses user yang telah ter-autentikasi dengan default adalah write. Nah pertanyaannya adalah “User mana yang telah ter-autentikasi ?”.

Untuk menjawabnya perhatikan baris password-db dan authz-db. Dua baris tersebut merujuk pada passwd dan authz yang sebenarnya keduanya adalah nama file konfigurasi terpisah dan kedua file tersebut juga terdapat pada direktori conf. File passwd merupakan konfigurasi untuk username dan password sedangkan file authz merupakan konfigurasi untuk user/group managemen serta hak akses masing-masing user/group.

Pada file passwd terdapat beberapa baris dibawah tag [users] yang merupakan contoh format penulisan username dan password.

Sedangkan pada file authz berisi beberapa tag antara lain [aliases],[groups],[/foo/bar] dan [repository:/baz/fuz].

Dibawah tag [aliases] terdapat contoh penulisan alias sebuah user. Format penulisannya sama seperti format identifikasi pada LDAP yang mengartikan CN=Common Name, OU=Organitation Unit, O=Organitation dan lain-lain.

Dibawah tag [groups] terdapat contoh penulisan group. Dengan format Nama_Group = user1, user2, user3, userN. Nama User di pisahkan oleh tanda koma (,).

Dibawah tag [/foo/bar] merupakan konfigurasi untuk hak akses /foo/bar sendiri sebenarnya adalah nama direktori yang akan diakses sehingga kita dapat merubah /foo/bar dengan nama directory yang kita inginkan. Sedangkan untuk penulisan hak akses dapat dilihat pada contoh yang sudah disediakan yaitu Nama_user/group = r/rw/'', r berarti Read, RW berarti Read Write dan ” (kosong) berarti none.

Untuk tag [repository:/baz/fuz] hampir sama dengan tag [/foo/bar] hanya saja ada sedikit perbedaan. Untuk lebih jelas silahkan baca di sini.

Server Subversion menggunakan konsep direktori based (ini istilah saya :D) dalam arti kita dapat mengisikan direktori apapun pada saat menjalankan server (langkah 5). Direktori yang kita masukkan pada saat menjalankan server akan menjadi root directori sehingga dapat langsung diakses dengan svn://localhost/.

Dan apabila kita ingin menjalankan server untuk dua repositori atau lebih. Seluruh repositori tersebut harus berada pada direktori yang sama kemudian jalankan server pada direktori yang menampung repositori-repositori tersebut.

Contoh :

Ada dua buah repositori real dan test. Kedua repositori tersebut berada pada direktori /opt/repos/. Maka jalankan server dengan command sudo svnserve -d -r /opt/repos/.

Maka ketika meng-akses repositori dari NetBeans alamat svn://localhost/ tidak akan menghasilkan apa-apa karena alamat tersebut baru merujuk pada direktori /opt/repos/ yang bukan merupakan repositori. Sedangkan untuk mengakes real atau test kita harus menambahkan nama repositori tersebut pada alamat Subversion dengan demikian untuk mengakses real maka alamatnya svn://localhost/real dan untuk mengakses test maka alamatnya svn://localhost/test.

Pada contoh diatas localhost dapat diganti dengan alamat IP atau domain lain apabila bekerja dalam jaringan.

Salam
Deny Prasetyo

  1. keep rock with subversion!
    😀

    • e12
    • November 29th, 2008

    Mas Deny emang yahuuttt…
    Semangat terus mas!!!

  2. Salam Linux My Friend! saya Pemakai Ubuntu 9.04 mau tanya neh kalau buat linux yang saya pake, ada ga yah Aplikasi Apotek yang Siap pake?

    Thank you

    • meac
    • Desember 26th, 2011

    Makasih Ya Mas Atas Refrensi_ya…
    Sangat Membatu Saya Dalam Belajar Java…🙂

  1. Januari 16th, 2009

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: