subversion dan tortoisesvn

33
Version Control dengan Subversion (SVN) Praktikum RPL 8 Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor

Upload: muhammad-iqbal

Post on 25-Dec-2015

33 views

Category:

Documents


2 download

DESCRIPTION

Subversion Dan TortoiseSVN

TRANSCRIPT

Page 1: Subversion Dan TortoiseSVN

Version Control dengan

Subversion (SVN)

Praktikum RPL 8

Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor

Page 2: Subversion Dan TortoiseSVN

Version Control

• Version control adalah manajemen dari

sejumlah versi (revisi) dari dokumen

terkait proyek, source code, dll.

• Nama lain dari version control

• Revision control

• Source control

• Source code management

Page 3: Subversion Dan TortoiseSVN

Sistem Version Control

• Sistem version control penting untuk proyek pengembangan

perangkat lunak

• Menyediakan repository

untuk dokumen-dokumen

• Memfasilitasi kolaborasi dalam tim

• Menyediakan riwayat revisi

Page 4: Subversion Dan TortoiseSVN

Sistem Version Control

• Banyak sistem version control yang tersedia

• Berbayar ($100-$4000+ per user):

• IBM Rational ClearCase

• Microsoft Visual SourceSafe

• Microsoft Team Foundation Server

• Open-source – free:

• CVS

• Git

• Mercurial

• Subversion (SVN)

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

Page 5: Subversion Dan TortoiseSVN

Arsitektur Sistem Version Control

• Repository terpusat

untuk banyak client

(developer)

• Setiap developer

memiliki local repository

atau local workng copy

masing-masing

• Semuanya disatukan oleh

server version control

(http://www.zefhemel.com/archives/2005/03/24/isdw-day-4-file-exchange)

Page 6: Subversion Dan TortoiseSVN

Subversion

• Dikembangkan pada 2000 dan 2001 (oleh CollabNet, sekarang

Apache) untuk menggantikan CVS

• Free

• Open-source

• Bekerja melalui jaringan

• Bisa digunakan untuk segala jenis file (namun lebih ditujukan untuk

source code program)

• Memerlukan administrasi untuk servernya

Page 7: Subversion Dan TortoiseSVN

Penyimpanan Repository

• Subversion menyimpan repository secara terpusat

• Penyimpanan repository bertindak seperti fileserver

• Client melakukan koneksi, mendownload

atau mengupload file

• Koneksi dapat diamankan dengan password

• Client bisa juga melihat log

perubahan dalam repository

• Seluruh perubahan tercatat:

tanggal, waktu, user yang mengubah

Page 8: Subversion Dan TortoiseSVN

Server Subversion Ilkom

• http://apps.cs.ipb.ac.id/svnweb

• Bisa diakses dari luar IPB

Page 9: Subversion Dan TortoiseSVN

Mengapa harus menggunakan

version control?

Page 10: Subversion Dan TortoiseSVN

Quote:

“Jumlah maksimal programmer

yang dapat bekerja sama tanpa

menggunakan version control

adalah satu orang.”

Page 11: Subversion Dan TortoiseSVN

Teamwork

• Bagaimana sejumlah programmer bisa bekerjasama dalam satu

tim?

• Programmer A membuat sejumlah kode. Programmer B juga

membuat sejumlah kode. Keduanya mengerjakan program yang

sama.

• Bagaimana menggabungkannya?

• Kode siapa yang paling baru?

• Kode mana saja yang sudah diubah?

• Bagaimana kalau setelah digabungkan justru terjadi error?

Page 12: Subversion Dan TortoiseSVN

Permasalahan Sharing File

• Saling menimpa perubahan

Page 13: Subversion Dan TortoiseSVN

Solusi dari Subversion

• Menggunakan sistem copy-modify-merge

Page 14: Subversion Dan TortoiseSVN

• Subversion akan mencoba menggabungkan keduanya

Bisa muncul

conflict

Page 15: Subversion Dan TortoiseSVN

Mengatasi (Resolve) Conflict

• Bagaimana mengatasi conflict?

• Conflict tidak muncul bila perubahan

terjadi di bagian file yang berlainan

(misal Harry mengubah baris 1-10 dan

Sally mengubah baris 40-70)

• Conflict muncul bila perubahan

overlap (misal Harry mengubah baris

1-15 dan Sally mengubah baris 5-10)

• Subversion memberikan kedua

perubahan kepada Harry (A’ dan A’’)

dan Harry harus memutuskan bagaimana

menggabungkannya

Page 16: Subversion Dan TortoiseSVN

Ilustrasi Resolve Conflict

• Panel kiri kode milik Sally, panel kanan kode milik Harry.

• Harry akan menggabungkannya pada panel di bawahnya.

Page 17: Subversion Dan TortoiseSVN

Menggunakan Subversion

• Sebenarnya, client Subversion adalah aplikasi command-line

• Linux / Mac:

• Windows:

• Beberapa client dengan GUI telah dibuat:

• TortoiseSVN

• VisualSVN

• XCode (Mac OS X)

$ svn checkout http://server ...

C:\> svn checkout http://server ...

Page 18: Subversion Dan TortoiseSVN

TortoiseSVN

• TortoiseSVN

• Open-source (free)

• Terintegrasi dengan

Windows Explorer

• Dapat digunakan dengan

IDE apapun

• Catatan:

• TortoiseSVN hanya alat untuk upload atau download dari

dan ke repository

• Sementara untuk mengetik kode program, silakan gunakan IDE

yang biasa Anda gunakan

http://tortoisesvn.net/

Page 19: Subversion Dan TortoiseSVN

TortoiseSVN

• Dari Windows Explorer, gunakan TortoiseSVN dengan klik kanan

pada folder atau file

• Klik kanan pada folder

atau file

• Akan muncul menu yang

merupakan fungsi dari

TortoiseSVN

Page 20: Subversion Dan TortoiseSVN

TortoiseSVN: Checkout

• Langkah pertama untuk memulai penggunaan Subversion

• Untuk membuat “local repository” yang nantinya disinkronisasi

dengan server

• Hanya perlu dilakukan satu kali pada satu komputer

(waktu pertama kali)

Page 21: Subversion Dan TortoiseSVN

TortoiseSVN: Checkout

• Mendownload file-file yang ada di repository

• Tentukan URL dari repository (nanti diberikan oleh admin)

• Tentukan folder di komputer

untuk tempat menaruh file

hasil checkout

• Folder ini bebas, dan tidak

harus sama untuk setiap

programmer yang checkout

• Opsional: tentukan akan

checkout revisi berapa

(defaultnya HEAD atau

revisi terbaru)

Page 22: Subversion Dan TortoiseSVN

TortoiseSVN: Melihat Status File

• Icon pada file atau folder menunjukkan status file

Page 23: Subversion Dan TortoiseSVN

TortoiseSVN: Melihat Status File

Icon Status Keterangan

Normal File telah di-upload kembali ke server, atau telah

di-checkout, atau telah di-resolve bila ada conflict

Modified File telah diubah di local repository dan belum

di-upload (commit) kembali ke server

Non-versioned File ada dalam folder local repository, namun

belum ada dalam kendali Subversion (belum

ditambahkan / di-add)

Added File baru ditambahkan ke dalam local repository

(telah di-add)

Conflict File mengalami conflict dan belum di-resolve

Page 24: Subversion Dan TortoiseSVN

Mengupload Perubahan: Commit

• Setelah suatu file diubah, ditambahkan, atau dihapus, lakukan

commit untuk mengupload perubahan ke server

• SVN mencatat setiap

perubahan dan

memberikan suatu

revision number

atau nomor revisi (dimulai dari 0)

• Setiap commit akan menambah

nomor revisi

• Commit dapat dilakukan per file

atau langsung satu folder

• SVN secara otomatis mengetahui file mana saja

yang berubah dan harus di-commit

Page 25: Subversion Dan TortoiseSVN

Review Perubahan: Diff

• Melihat diff atau perubahan per baris dari file yang akan di-commit

Page 26: Subversion Dan TortoiseSVN

Melakukan Commit

• Berikan komentar mengenai

commit yang akan dilakukan

pada bagian revision log

• Di bawahnya ada daftar file

yang akan dikirim

• Setiap perubahan akan dicatat

dan ada riwayatnya

Page 27: Subversion Dan TortoiseSVN

Setelah Commit

• Nomor revisi akan ditambahkan, dan nomor terbaru ditampilkan

Page 28: Subversion Dan TortoiseSVN

Sinkronisasi dengan Server: Update

• Bila kita telah melakukan commit, rekan-rekan kita satu tim tidak

langsung menerima pembaruan dari server

• Mereka harus melakukan update di local repository masing-

masing

• Update berguna untuk memastikan bahwa local repository kita

adalah revisi / perubahan yang terbaru (dari server)

• Bisa timbul

conflict di

proses ini

Page 29: Subversion Dan TortoiseSVN

Ilustrasi

• John update

• John melakukan perubahan

• John commit

• Sue update

• Sue melakukan perubahan

• Sue commit

Hasil: file perubahan dari keduanya

Page 30: Subversion Dan TortoiseSVN

Membatalkan Perubahan: Revert

• Bila kita telah mengubah suatu file, dan ternyata perubahan itu

justru membuat program error, kita dapat mengembalikan

perubahan tersebut ke titik update terakhir

• Semacam “undo save” atau revert

• Bisa dilakukan asalkan perubahan

belum di-commit

Page 31: Subversion Dan TortoiseSVN

Tambahan

• Saran-saran:

• Jangan menyimpan file biner (misal EXE hasil compile) karena

memakan tempat yang banyak di server

• Lakukan commit secara bijak

• Jangan terlalu jarang sehingga developer lain tidak menerima perubahan

yang kita lakukan atau menerima “sekali banyak”

• Jangan terlalu sering sehingga terlalu banyak revisi

Page 32: Subversion Dan TortoiseSVN

Selanjutnya

• Buka tutorial praktikum

yang disediakan.

Page 33: Subversion Dan TortoiseSVN

Terima Kasih

Slide diadaptasi dari David Goldschmidt, Ph.D, The College of Saint Rose

Muhammad Abrar Istiadi [email protected]