LAB SISTEM OPERASI I! AUGUST 13, 2012 Pengenalan SVN Subversion(SVN) adalah open source software pengontrol versi pengerjaan project secara berkelompok yang terpisah menjadi runut dan teratur. http://teknologi.kompasiana.com/gadget/2011/01/20/apa-sih-cvs-dan-svn/ Subversion mengelola file dan direktori, dan perubahan yang dibuat dari waktu ke waktu. Hal ini memungkinkan Anda untuk memulihkan versi data Anda atau memeriksa sejarah bagaimana data Anda berubah. Dalam hal ini, banyak orang beranggapan svn semacam "mesin waktu." Subversion bisa beroperasi di jaringan, yang memungkinkan untuk digunakan oleh orang-orang di komputer yang berbeda. Subvrsion memiliki kemampuan untuk memodifikasi dan mengelola set data yang sama dari lokasi masing-masing secara bersama-sama. versi subversion terbaru saat ini adalah subversion 1.6 yang dirilis pada 2009 APR! ! ! ! ! ! ! ! ! ! ! ! page 1 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 Mini Glossary repository? Seperti gudang penyimpanan.pusat penyimpanan data yang sistem. Repository biasanya menyimpan informasi dalam bentuk filesystem tree hierarki file dan direktori. working copy? Dalam hal ini adalah ipin.cs.ui.ac.id yaitu local copy dari repository di projects kita. working copy cenderung lebih bebas dimodifikasi dari repository. revision? Integer unik yang selalu membesar setiap commit sandbox File lokal salinan dari repository APR! ! ! ! ! ! ! ! ! ! ! ! page 2 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 Shortcut LEARN MORE ABOUT svn help Penjelasan detail tentang hal tertentu svn checkout atau svn co ambil file dari svn svn add SVN Tambah file baru di svn (beberapa contoh perintah svn) svn delete Menghapus file dari repository SVN HELP svn update atau up Sync file di lokal dengan server svn commit atau svn ci untuk konfirmasi svn list melihat konten direktori svn move Untuk mendapatkan penjelasan detail dari perintah tertentu di memindahkan atau mengubah nama direktori svn. Contoh di atas merupakan contoh untuk mendapatkan svn revert penjelasan tentang “status”. Hasil dari perintah di atas adalah kembali ke versi sebelum commit terahir penjelasan tentang perintah svn status. svn remove mirip dengan delete namun perlu memberi url svn info SVN CHECKOUT memberikan info detail tentang berkas atau direktori tertentu. svn switch memindahkan working copy ke repository yang lain svn status menampilkan status svn copy Perintah ini berfungsi untuk mengunduh file tertentu dari svn mengopi dari nomor revisi tertentu repository atau dengan kata lain, untuk mengakses file dari SVN server. Anda dapat melakukan checkout sebuah berkas, direktori atau projek http://wiki.greenstone.org/wiki/ index.php/ Useful_SVN_Commands keseluruhan. Penjelasan syntax: http://www.linuxfromscratch.org/ blfs/edguide/chapter03.html • URL adalah URL dari komponen yang ingin dicheckout • Path adalah tempat destinasi dari hasil checkout. http://www.thegeekstuļ¬.com/ 2011/04/svn-command-examples/ APR! ! ! ! ! ! ! ! ! ! ! ! page 3 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN ADD svn diff menampilkan perbedaan svn cleanup Untuk memberi tahu server SVN tentang penambahan file atau membersihkan working copy direktori. File atau direktori tersebut tidak akan muncul di svn cat repository sampai anda melakukan commit. menampilkan konten dari file tertentu Penambahan ini berbeda dengan “membuat”. Anda perlu membuatnya pada direktori lokal terlebih dahulu dan selanjutnya dapat menambahkan di svn. Selain itu, penambahan ini dapat dilakukan lebih dari 1 item dalam 1 waktu. SVN DELETE Perintah ini untuk menghapus 1 item dari repository. Item akan terhapus apabila telah melakukan commit. SVN UPDATE Perintah ini untuk sinkronisasi lokal sandbox anda dengan server. Berfungsi untuk memperbarui file lokal dengan perubahan yang terjadi di repository. Bila melakukan pembaruan di beberapa file tertentu: http://wiki.greenstone.org/wiki/ index.php/ Useful_SVN_Commands http://www.linuxfromscratch.org/ blfs/edguide/chapter03.html Bila melakukan pembaruan pada seluruh direktori yang ada beserta subdirektori. http://www.thegeekstuļ¬.com/ 2011/04/svn-command-examples/ APR! ! ! ! ! ! ! ! ! ! ! ! page 4 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN COMMIT atau SVN CI Perintah ini untuk mengirimkan pengubahan yang anda buat ke svn. svn commit dibutuhkan setelah svn add, svn delete, dan svn move. opsi -m (message) dapat diikuti setelah perintah svn commit. biasanya message merupakan kalimat yang menjelaskan perubahan apa yang telah dilakukan. Perintah commit ini dapat dilakukan pada lebih dari 1 file dalam 1 waktu dilakukan dengan separasi 1 spasi. contoh untuk commit di direktori saat ini ke repository : svn commit -m "The svn externals property changed for this folder to grab files/ folders from elsewhere" . SVN LIST Perintah ini berguna untuk melihat konten direktori dari SVN repository. bila “svn list --verbose” akan menampilkan : • nomor revisi terakhir setelah commit terakhir • author saat commit terakhir • size dalam byte • tanggal dan waktu dari commit terakhir. contoh: APR! ! ! ! ! ! ! ! ! ! ! ! page 5 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN MOVE atau SVN MV atau SVN RENAME atau SVN REN Perintah ini untuk memindahkan file dari 1 direktori ke direktori yang lain atau mengganti nama file. File akan dipindahkan ke sandbox lokal anda segera setelah perubahan pada repository dilakukan. Perintah ini perlu diikuti commit. SVN REVERT Perintah ini untuk menimpa/overwrite dari repository dengan versi yang sebelumnya sebelum commit terakhir. revert lokal edit : <filename> optional revert ke revisi sebelumnya: ganti ‘R’ dengan nomor revisi yang diinginkan SVN REMOVE atau SVN RM Sama seperti svn delete namun perlu untuk mencantumkan url file yang ingin dihapus. SVN INFO Perintah ini untuk memberikan informasi mengenai: • path • URL • alamat Repository Root • nomor revision terakhir • Tipe node APR! ! ! ! ! ! ! ! ! ! ! ! page 6 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 • Schedule, bila “normal” maka pengguna dapat melakukan add, delete, dan replace • nama yang membuat perubahan terakhir • hari, tanggal, dan jam perubahan terakhir pada direktori tempat pelaksanaan perintah “svn info” perintah svn info dapat dilakukan terhadap berkas: svn info [nama file] contoh: dan juga terhadap direktori, masuk ke direktori yang diinginkan dan laksanakan svn info. SVN SWITCH Memindahkan repository ke URL lain svn switch URL[@PEGREV] [PATH] --relocate untuk menghindari efek perubahan url pada server terhadap keberadaan file kita. svn switch --relocate FROM TO [PATH...] **svn switch --relocate perlu diikuti dengan svn update. contoh: APR! ! ! ! ! ! ! ! ! ! ! ! page 7 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN STATUS Mencetak status dari working copy dan direktori. contoh: dengan --verbose (svn status --verbose), mencetak informasi revisi penuh pada setiap item. dengan --quiet (svn status --quiet), menampilkan ringkasan status. pada kolom pertama hasil dari perintah status ini, terdapat 1 karakter, berikut penjelasannya: • ' ' Tidak ada modifikasi. • 'A' telah terjadi penambahan. • 'D' telah terjadi penghapusan. • 'M' telah dimodifikasi. • 'R' telah ditimpa(replace) • 'C' isinya berbeda dengan yang di repository • '?' item under version control • '!' item hilang (misalnya, dipindahkan atau dihapus tanpa menggunakan svn). APR! ! ! ! ! ! ! ! ! ! ! ! page 8 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN COPY Biasanya berguna saat kita tidak sengaja menghapus file di repository dan ingin mengembalikannya. syntax: svn copy -r <older version number> from-svn-url to-svn-url -m "message" contoh: ingin mengembalikan folder “my_program” yang terhapus. svn copy -r 15315 http://svn.greenstone.org/other-projects/trunk/my_program http://svn.greenstone.org/other-projects/trunk/my_program -m "Accidental delete restored" perlu diperhatikan bahwa nomor revisi yang ditulis merupakan nomor revisi saat folder “my_program” masih ada). SVN DIFF Menampilkan perbedaan file yang terdapat di working copy dan svn atau perbedaan dari nomor revisi tertentu svn diff -r revision1:revision2 FILENAME. contoh : svn diff -r 168:169 index.xml akan menampilkan perbedaan pada revisi 168 dan 169 dari index.xml. SVN CLEANUP Membersihkan working copy secara rekursif. Biasanya dilakukan bila ada operasi yang belum selesai dan ingin melanjutkannya. syntax: contoh : bila hanya “svn cleanup” tanpa path, maka akan membersihkan di direktori sekarang. APR! ! ! ! ! ! ! ! ! ! ! ! page 9 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 SVN CAT Menampilkan isi dari file tertentu syntax: OPSI PELENGKAP --force contoh: $ svn cat cobavi.txt .... -m pesan log Hello. This is my first session in the vi editor. This is the second line of text. -u -v -r -h --verbose --relocate --set-depth --relocate -c -p contoh penggunaan: svn delete --force [namafile] APR! ! ! ! ! ! ! ! ! ! ! ! page 10 of 11 LAB SISTEM OPERASI I! AUGUST 13, 2012 Recommended Link: Ben Collins-Sussman et al., 2010. Version control with subversion. July 3, 2012. http://svnbook.red-bean.com/en/1.6/ Revisi Terakhir : http://bebas.vlsm.org/v24/sosp12/root/tutorial-lab/svn-r04.pdf Disusun Oleh ! : Annisa Prida Rachmadianty dari Tim SOSP12 Kontributor: Pembina!! : Rahmat M Samik-Ibrahim Ramot Stephanus Rizki Mandala Putra Tim SOSP12 (http://sosp.vlsm.org/) : 1. Aditya Try Anggoro 2. Annisa Prida Rachmadianty 3. Ardanella Nelwan 4. Farah Nuraini 5. Nisrina Luthfiyati 6. Siska Eka Putriani 7. Zulfikar Ian Ifetayo Copyright 2012 by SOSP12. all rights reserved. This material may be freely copied and distributed subject to inclusion of this copyright notice and our World Wide Web URL http://sosp.vlsm.org APR! ! ! ! ! ! ! ! ! ! ! ! page 11 of 11