Home > SVN > Setup CollabNet Subversion Server

Setup CollabNet Subversion Server

Pendahuluan

Tulisan ini berisi penjelasan singkat bagaimana menggunakan CollabNet Subversion server for Windows (http://www.open.collab.net/downloads/subversion/) untuk version control pengembangan software yang dilakukan oleh beberapa programmer sekaligus.

Instalasi SVN server Collabnet for Windows cukup mudah dilakukan, cukup jalankan program instalasinya dan ikuti langkah-langkah default yang disediakan. Setelah server subversion berhasil diinstal, next step nya adalah menyiapkan repository supaya server dapat langsung digunakan oleh client.


1. Import tree direktori proyek

Asumsi jika file-file proyek sudah berada pada suatu direktori dan ingin dimasukkan ke repository SVN untuk dapat dilacak versioningnya.

Perintahnya adalah dengan svn import sbb dengan terlebih dahulu membuat repository yang dibutuhkan:

svnadmin create c:/svn_repository/trunk
svn import proyek file:///c:/svn_repository/trunk/proyek -m "initial import"

Setelah proses import selesai, dapat dilakukan svn list untuk mengecek apakah semua file proyek dan direktori tree nya sudah berhasil diimport sbb:

svn list svn://localhost/trunk

perintah svn dapat dipanggil dengan URL parameter server file, svn, http, dll. Jika menggunakan file:///, maka perlu diketikan lengkap nama lokasi file repository svn server yang digunakan (contohnya c:/svn_repository). Jika menggunakan svn://, maka cukup nama subdirektori di bawah c:/svn_repository (direktori ini mirik kayak document root di apache).

2. Initial Checkout

Setelah SVN server dan repositorynya berhasil disetup, saatnya client melakukan checkout, edit, dan commit ke SVN. Checkout digunakan untuk meng-copy repository pada komputer local client dimana nantinya client dapat bekerja (secara local).

svn checkout svn://localhost/trunk/proyek

Client dapat juga men-checkout suatu subdirektori tertentu dari proyek misalnya:

svn checkout svn://localhost/trunk/proyek/application

Setelah semua file dari repository berhasil di-copy ke local melalui proses checkout, maka file local dapat diedit oleh user. Setelah selesai diedit, kita bisa cek melalui svn status untuk melihat perubahan apa saja yang baru dilakukan dan perlu di-commit ke server, misalnya.

svn status
M      config.php

Perintah di atas dijalankan di dalam direktori kerja local dimana file-file proyek berada. Informasi di atas berarti bahwa kita baru saja melakukan editing terhadap file Status dimana flag M berarti Modify.

Khusus untuk penghapusan, pen-copy-an pemindahan, dan penambahan file baru kita harus menggunakan perintah svn delete, svn copy, svn move, dan svn add.

3. Commit ke server

Setelah proses edit file-file yang dibutuhkan selesai dilakukan, saatnya untuk men-commit perubahan tersebut ke server. Ini dilakukan dengan perintah svn commit.

svn commit –username=andry –password=1234  -m "config"
Sending        config.php
Transmitting file data .
Committed revision 2.

Harap diperhatikan pada saat commit, user harus memiliki privileges yang cukup untuk melakukan operasi "write" ke repository. Ini dilakukan melalui setting file svnserve.conf, passwd dan authz yang ada pada direktori repository c:\svn_repository\trunk\conf.

Pada file svnserve.conf, ditentukan nama-nama file file passwd dan authz yang digunakan.

[general]
anon-access = read
auth-access = write

password-db = passwd
authz-db = authz

Pada file passwd didefinisikan user-user yang berhak mengakses repository berikut passwordnya.

[users]
daniel = 1234
eky = 1234
rachmat = 1234
andry = 1234

File authz, mendifinisikan group user dan hak akses nya terhadap suatu repository. Contohnya terdapat group fams yang terdiri dari user daniel dan andry, dan group eis yang terdiri dari user daniel, rachmat, dan eky. Kemudian, didefinisikan akses terhadap repository, untuk semua direktori yang ada pada repository trunk, semua user dapat mengaksesnya dengan hak "read". Lalu pada repository trunk direktori fams, semua user yang tergabung pada group fams dapat mengaksesnya dengan hak "read" dan "write".

[groups]
fams = daniel,andry
eis = daniel,rachmat,eky

[trunk:/]
* = r

[trunk:/fams]
@fams = rw
* = r

4. Mengupdate file local

Misalnya ada user lain yang hendak bekerja pada direktori proyek yang sama. Berikut ini perintah yang dia lakukan:

1. cd ke direktori kerja

2. svn checkout svn://localhost/trunk/fams untuk meng-copy data repositori proyek ke file local

3. lakukan pengeditan pada file sesuai kebutuhan, misalnya file header.php

4. svn status untuk mengecek file-file apa saja yang sudah diubah

svn status
M      Root\cibp\system\application\views\header.php

5. svn commit -m "revisi dari user2", misalnya

svn commit -m "edit header"
Sending        Root\cibp\system\application\views\header.php
Transmitting file data .
Committed revision 3.

Setelah itu, setiap kali sebelum melakukan pekerjaannya, user pertama perlu untuk mengecek apakah ada perubahan yang dilakukan oleh user lain. Perintah yang dilakukan oleh user pertama adalah:

1. cd ke direktori kerja user 1

2. svn update

 U    Root\cibp\system\application\views\header.php
  Updated to revision 3.

3. Pada direktori kerja local, file-file yang di-commit oleh user lain akan terupdate sehingga dapat dipastikan kerjaan user lain akan disinkronisasikan ke file local user pertama.

Demikian penjelasan singkat SVN, untuk info lebih detail bisa cek ke buku svn-book.pdf yang terdapat pada paket instalasi SVN server.

Technorati Tags: ,


Akhmad Daniel Sembiring

vITraining.com – Qualified IT Products, Outsourcing, and Services

Ligarwangi.com – Linux, E-book, Coffee, Gift, etc

  • Share/Bookmark
Categories: SVN Tags: ,
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.