an introduction to subversion (bahasa indonesia)

44
 Version Control Version Control dengan dengan Subversion Subversion Endy Muhardin < Endy Muhardin < [email protected] [email protected] > > http://endy.artivisi.com http://endy.artivisi.com last updated : 2006-11-29 last updated : 2006-11-29

Upload: gibransyah-fakhri

Post on 27-Jun-2015

1.520 views

Category:

Technology


1 download

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

Page 1: An Introduction to Subversion (Bahasa Indonesia)

   

Version ControlVersion Controldengandengan

SubversionSubversion

Endy Muhardin <Endy Muhardin <[email protected]@artivisi.com>>

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

Page 2: An Introduction to Subversion (Bahasa Indonesia)

MateriMateri

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

Page 3: An Introduction to Subversion (Bahasa Indonesia)

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●

Page 4: An Introduction to Subversion (Bahasa Indonesia)

SubversionSubversion

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

Page 5: An Introduction to Subversion (Bahasa Indonesia)

Tanpa Subversion [1]Tanpa Subversion [1]

Page 6: An Introduction to Subversion (Bahasa Indonesia)

Tanpa Subversion [2]Tanpa Subversion [2]

Page 7: An Introduction to Subversion (Bahasa Indonesia)

Tanpa Subversion [3]Tanpa Subversion [3]

Page 8: An Introduction to Subversion (Bahasa Indonesia)

Tanpa Subversion [4]Tanpa Subversion [4]

Page 9: An Introduction to Subversion (Bahasa Indonesia)

Dengan Subversion [1]Dengan Subversion [1]

Page 10: An Introduction to Subversion (Bahasa Indonesia)

Dengan Subversion [2]Dengan Subversion [2]

Page 11: An Introduction to Subversion (Bahasa Indonesia)

Dengan Subversion [3]Dengan Subversion [3]

Page 12: An Introduction to Subversion (Bahasa Indonesia)

Dengan Subversion [4]Dengan Subversion [4]

Page 13: An Introduction to Subversion (Bahasa Indonesia)

Membuat RepositoryMembuat Repository

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

Page 14: An Introduction to Subversion (Bahasa Indonesia)

Protokol svnserveProtokol svnserve

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

Page 15: An Introduction to Subversion (Bahasa Indonesia)

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

Page 16: An Introduction to Subversion (Bahasa Indonesia)

passwdpasswd

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

Page 17: An Introduction to Subversion (Bahasa Indonesia)

mkdirmkdir

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

Page 18: An Introduction to Subversion (Bahasa Indonesia)

importimport

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

Page 19: An Introduction to Subversion (Bahasa Indonesia)

checkoutcheckout

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

Page 20: An Introduction to Subversion (Bahasa Indonesia)

statusstatus

svn statussvn status

Page 21: An Introduction to Subversion (Bahasa Indonesia)

commitcommit

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

Page 22: An Introduction to Subversion (Bahasa Indonesia)

historyhistory

svn log nama­filesvn log nama­file

Page 23: An Introduction to Subversion (Bahasa Indonesia)

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

Page 24: An Introduction to Subversion (Bahasa Indonesia)

rev 1rev 1

public class Kalkulator{public class Kalkulator{

}}

Page 25: An Introduction to Subversion (Bahasa Indonesia)

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;

    }}

}}

Page 26: An Introduction to Subversion (Bahasa Indonesia)

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;

    }}

}}

Page 27: An Introduction to Subversion (Bahasa Indonesia)

Isi database SubversionIsi database Subversion

Page 28: An Introduction to Subversion (Bahasa Indonesia)

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

Page 29: An Introduction to Subversion (Bahasa Indonesia)

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

Page 30: An Introduction to Subversion (Bahasa Indonesia)

tagtag

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

Page 31: An Introduction to Subversion (Bahasa Indonesia)

branchbranch

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

Page 32: An Introduction to Subversion (Bahasa Indonesia)

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

Page 33: An Introduction to Subversion (Bahasa Indonesia)

Parameter MergeParameter Merge

Page 34: An Introduction to Subversion (Bahasa Indonesia)

mergemerge

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

Page 35: An Introduction to Subversion (Bahasa Indonesia)

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●

Page 36: An Introduction to Subversion (Bahasa Indonesia)

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–

Page 37: An Introduction to Subversion (Bahasa Indonesia)

WebSVNWebSVN

Page 38: An Introduction to Subversion (Bahasa Indonesia)

Fisheye – Front PageFisheye – Front Page

Page 39: An Introduction to Subversion (Bahasa Indonesia)

Fisheye ­ BlameFisheye ­ Blame

Page 40: An Introduction to Subversion (Bahasa Indonesia)

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

Page 41: An Introduction to Subversion (Bahasa Indonesia)

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)

Page 42: An Introduction to Subversion (Bahasa Indonesia)

What's next ? What's next ? 

● IntegrasiIntegrasi– AntAnt– MavenMaven

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

Page 43: An Introduction to Subversion (Bahasa Indonesia)

   

??????

Pertanyaan dan DiskusiPertanyaan dan Diskusi

Page 44: An Introduction to Subversion (Bahasa Indonesia)

   

Terima KasihTerima Kasih

[email protected]@artivisi.com

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

● Y!: endymuhardinY!: endymuhardin