an introduction to subversion (bahasa indonesia)

Post on 27-Jun-2015

1.522 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Konsep penerapan revision control menggunakan Subversion dalam bahasa indonesia. Disertai contoh-contoh terapan sehingga mudah dimengerti dan difahami. Disampaikan oleh Founder Artivisi Intermedia, Endy Muhardin.

TRANSCRIPT

   

Version ControlVersion Controldengandengan

SubversionSubversion

Endy Muhardin <Endy Muhardin <endy@artivisi.comendy@artivisi.com>>

http://endy.artivisi.comhttp://endy.artivisi.comlast updated : 2006-11-29last updated : 2006-11-29

MateriMateri

● Apa itu version controlApa itu version control● Apa itu SubversionApa itu Subversion● Penggunaan harianPenggunaan harian● Tag, Branch, MergeTag, Branch, Merge● Perangkat tambahanPerangkat tambahan

Version ControlVersion Control

● File ServerFile Server● Menyimpan riwayat perubahanMenyimpan riwayat perubahan● Tag: menandai momen pentingTag: menandai momen penting● Branch : bekerja paralelBranch : bekerja paralel● Merge : menggabungkan perubahanMerge : menggabungkan perubahan●

SubversionSubversion

● http://subversion.tigris.orghttp://subversion.tigris.org● Tujuan : menggantikan CVSTujuan : menggantikan CVS● Sponsor : CollabNetSponsor : CollabNet● Lisensi : Open Source & GratisLisensi : Open Source & Gratis

Tanpa Subversion [1]Tanpa Subversion [1]

Tanpa Subversion [2]Tanpa Subversion [2]

Tanpa Subversion [3]Tanpa Subversion [3]

Tanpa Subversion [4]Tanpa Subversion [4]

Dengan Subversion [1]Dengan Subversion [1]

Dengan Subversion [2]Dengan Subversion [2]

Dengan Subversion [3]Dengan Subversion [3]

Dengan Subversion [4]Dengan Subversion [4]

Membuat RepositoryMembuat Repository

● svnadmin create ­­fs­type fsfs foldersvnadmin create ­­fs­type fsfs folder

Protokol svnserveProtokol svnserve

● svnserve ­d ­r nama­foldersvnserve ­d ­r nama­folder

svnserve.confsvnserve.conf

● [general][general]● #anon-access = read#anon-access = read● auth-access = writeauth-access = write● password-db = passwdpassword-db = passwd● realm = Repo Sayarealm = Repo Saya

passwdpasswd

● [users][users]● endy = latihanendy = latihan● anton = belajaranton = belajar●

mkdirmkdir

svn mkdir svn://localhost/trunk svn mkdir svn://localhost/trunk 

importimport

svn import . svn://localhost/trunksvn import . svn://localhost/trunk

checkoutcheckout

svn checkout svn://localhost/trunksvn checkout svn://localhost/trunk

statusstatus

svn statussvn status

commitcommit

svn commit ­m “keterangan perubahan”svn commit ­m “keterangan perubahan”

historyhistory

svn log nama­filesvn log nama­file

Diff / DeltaDiff / Delta

● Subversion tidak menyimpan seluruh fileSubversion tidak menyimpan seluruh file● Hanya menyimpan selisih antar revisionHanya menyimpan selisih antar revision●

svn diff ­r10:13 nama­filesvn diff ­r10:13 nama­file

rev 1rev 1

public class Kalkulator{public class Kalkulator{

}}

rev 2rev 2

public class Kalkulator{public class Kalkulator{

    public int tambah(int x, int y){public int tambah(int x, int y){

        return x + y;return x + y;

    }}

}}

rev 3rev 3

public class Calculator{public class Calculator{

    public int add(int x, int y){public int add(int x, int y){

        return x + y;return x + y;

    }}

    public int substract(int x,int y){public int substract(int x,int y){

        return x ­ y;return x ­ y;

    }}

}}

Isi database SubversionIsi database Subversion

Branch & TagBranch & Tag

● Tag : menandai titik pentingTag : menandai titik penting– rilis ke QCrilis ke QC– rilis ke pelangganrilis ke pelanggan– sebelum/sesudah refactoringsebelum/sesudah refactoring– sebelum/sesudah mergesebelum/sesudah merge

● Branch : memungkinkan kerja paralelBranch : memungkinkan kerja paralel– persiapan rilis & penambahan fiturpersiapan rilis & penambahan fitur– refactoring besarrefactoring besar

Branch & Tag SubversionBranch & Tag Subversion

● Berbeda dengan branch/tag CVSBerbeda dengan branch/tag CVS● Operasi copy folder biasaOperasi copy folder biasa● Bisa commit ke tagBisa commit ke tag● Cheap copy, tidak boros spaceCheap copy, tidak boros space

tagtag

svn cp trunk tags/nama­tagsvn cp trunk tags/nama­tag

branchbranch

svn cp trunk branches/nama­branchsvn cp trunk branches/nama­branch

Konsep MergeKonsep Merge

● Menggabungkan perubahan di folder lainMenggabungkan perubahan di folder lain● Butuh tiga parameter:Butuh tiga parameter:

– folder asalfolder asal– titik awaltitik awal– titik akhirtitik akhir

● Dijalankan di folder tujuanDijalankan di folder tujuan

Parameter MergeParameter Merge

mergemerge

svn merge ­r4:8 svn://localhost/QC/01svn merge ­r4:8 svn://localhost/QC/01

Aplikasi ClientAplikasi Client

● Command LineCommand Line● TortoiseSVNTortoiseSVN● RapidSVNRapidSVN● IDE (Eclipse, Netbeans, IDEA)IDE (Eclipse, Netbeans, IDEA)● Cadaver (WebDAV client)Cadaver (WebDAV client)● Macromedia Dreamweaver (WebDAV)Macromedia Dreamweaver (WebDAV)● AntAnt●

Aplikasi TambahanAplikasi Tambahan● WebSVNWebSVN

– open sourceopen source– dibuat dengan PHPdibuat dengan PHP

● FisheyeFisheye– komersialkomersial– dibuat dengan Javadibuat dengan Java

● Menampilkan informasi isi repositoryMenampilkan informasi isi repository– diffdiff– blameblame–

WebSVNWebSVN

Fisheye – Front PageFisheye – Front Page

Fisheye ­ BlameFisheye ­ Blame

Keterbatasan SubversionKeterbatasan Subversion

● Repository terdistribusiRepository terdistribusi– repository tidak bisa direplikasirepository tidak bisa direplikasi

● Pencatatan merge otomatisPencatatan merge otomatis– svn merge ­r10:13 nama­branchsvn merge ­r10:13 nama­branch

● Aplikasi tambahanAplikasi tambahan– statcvsstatcvs

PesaingPesaing

● CVS (open source)CVS (open source)● SVK (open source)SVK (open source)● Visual Source Safe (komersial)Visual Source Safe (komersial)● Vault (komersial)Vault (komersial)● Perforce (komersial)Perforce (komersial)● BitKeeper (komersial)BitKeeper (komersial)

What's next ? What's next ? 

● IntegrasiIntegrasi– AntAnt– MavenMaven

● Continuous IntegrationContinuous Integration– Cruise Control Cruise Control – LuntbuildLuntbuild– AnthillAnthill

   

??????

Pertanyaan dan DiskusiPertanyaan dan Diskusi

   

Terima KasihTerima Kasih

● endy@artivisi.comendy@artivisi.com

● http://endy.artivisi.comhttp://endy.artivisi.com

● Y!: endymuhardinY!: endymuhardin

top related