Version Control System (VCS) Pertemuan 10-11 Universitas Ubudiyah Indonesia Pemrograman Berbasis Web II Zuhar Musliyana, S.ST., M.T
Outline Pengantar Version Control System (VCS) Jenis VCS VCS dengan Git (Github) Perintah Dasar Git
Version Control System (VCS) Version Control System (VCS) adalah sebuah infrastruktur yang dapat mendukung pengembangan software secara kolaboratif. Setiap anggota yang berada di dalam sebuah tim pengembangan software dapat menulis kode programnya masing - masing kemudian digabungkan ke server yang sudah memiliki VCS yang digunakan.
Version Control System.. Selain mengandalkan konkurensi yang dapat mempercepat pengembangan software, VCS juga mempunyai kemampuan untuk kembali ke versi software sebelumnya jika terjadi suatu bencana terhadap versi software yang sedang dikembangkan saat ini. Kemampuan ini disebut reversibility.
Version Control System.. Selain itu, dengan menggunakan VCS setiap perubahan pada software seperti penambahan file atau pengubahan isi file dapat dipantau bagian mana yang diubah dan siapa yang mengubah. Sehingga pengerjaan software akan lebih transparan dan terukur.
Version Control System Lokal
Version Control Systems Terpusat
Version Control System Terdistribusi
Jenis-jenis VCS Bazaar Subversion (SVN) Mercurial CVS RCS ClearCase Perforce GNU Arch GNU CSSC Git
Bazaar Bazaar merupakan bagian dari GNU Project, Bazaar adalah free software yang disponsori oleh Canonical. Salah satu layanan yang menggunakan Bazaar adalah Launchpad, sebuah tempat dimana aplikasi Ubuntu dikembangkan dan dipantau oleh komunitas. Bazaar dapat digunakan di Windows, Ubuntu, Debian, Red Hat, SUSE, OS X, FreeBSD, Solaris, Gentoo, dan lainnya.
Subversion (SVN) SVN adalah free VCS yang didesain mirip dengan CVS dan lebih sederhana. SVN mendukung atomic commits dari sebuah file dan melakukan versioning terhadap direktori, symbolic links, dan meta-data. Selain itu mendukung versioning terhadap penamaan, penyalinan, dan penghapusan suatu file atau direktori.
Mercurial Mercurial atau yang biasa disingkat menjadi Hg. Mercurial adalah VCS yang free. Mercurial memiliki konsep distributed source control management tool. Mercurial efisien untuk menangani proyek yang memiliki bermacam ukuran dan jenis. Mercurial mendukung berbagai workflow.
CVS CVS adalah free VCS yang digunakan oleh mayoritas proyek free software. Saat ini CVS perlahan mulai tergantikan oleh sistem VCS lain yang lebih baru. CVS mendukung pengembangan konkuren oleh banyak pengembang baik secara lokal atau diatas jaringan. CVS sangat kurang mendukung untuk atomic commits dan pemindahan / penamaan ulang file.
RCS Revision Control System atau RCS mampu mengelola revisi dari banyak file. RCS mengotomasi penyimpanan, pengambilan, pencatatan, pemeriksaan, dan penggabungan dari sebuah revisi. RCS berguna untuk teks yang sering direvisi seperti source code, program, dokumentasi, grafik, jurnal, dan surat.
Perforce Perforce memiliki keunggulan dengan sebuah sistem yang dinamakan Continous Delivery. Dengan menggunakan disiplin tersebut software dapat dirilis menjadi production kapanpun. Perforce ini dipercaya oleh vendor - vendor besar seperti Netflix, Samsung, Salesforce, dan New York Stock Exchange.
ClearCase VCS yang ini juga merupakan VCS proprietary dan berbayar. IBM Rational ClearCase ini mendukung untuk version control, workspace management, parallel development support, dan auditing. Tentunya ClearCase ini dapat diintegrasikan dengan produk IBM lainnya, misal WebSphere. Selain itu ClearCase memiliki effective IP security yang menjamin source code yang ditulis akan aman dari kontrol yang tidak diizinkan.
GNU Arch GNU Arch adalah salah satu decentralized version control system yang paling awal. Hanya saja saat ini Arch mulai kurang aktif dikembangkan. GNU Arch murah dan mudah untuk dikelola, dan tidak perlu memberikan permisi untuk setiap peserta proyek. Mempunyai fitur branching dan merging yang siap memudahkan tim yang mengembangkan free software.
GNU CSSC CSSC merupakan proyek dari GNU Project yang menggantikan SCCS. SCCS adalah VCS yang bersifat proprietary yang tersedia untuk versi komersial dari Unix. GNU CSSC ini dikembangkan sebagai versi free untuk Unix. Dengan menggunakan CSSC, sebuah proyek dapat dikontrol menggunakan sistem lain seperti Git atau SVN.
Git Git merupakan VCS yang dikembangkan oleh Linux Torvald ketika mengembangkan Linux (kernel). Git merupakan decentralized version control system. Git mempunyai keunggulan seperti repository syncing, bekerja secara offline, cheap local branching, staging area yang nyaman, mampu menangani proyek besar seperti Kernel Linux secara efektif dalam hal kecepatan dan ukuran data, mendukung non-linear development, dan multiple workflow. Selain itu Git digunakan di berbagai layanan VCS seperti Github, Gitlab, Bitbucket, Assembla, dan Gitorious
Github Github juga merupakan Version Control System (VCS) yang paling populer yang menggunakan Git. Github adalah aplikasi berbasis website yang memberikan layanan berupa penyimpanan repository secara gratis. Apa itu repository? repository adalah tempat dimana Anda dapat menyimpan file - file berupa source code. Repository pada Github itu seperti kita menyimpan file - file di Google Drive.
Perintah dasar GIT git config git init Salah satu perintah git yang paling banyak digunakan adalah git config, yang bisa digunakan untuk mengatur konfigurasi tertentu sesuai keinginan pengguna, seperti email, algoritma untuk diff, username, format file, dl git init Perintah ini digunakan untuk membuat repositori baru. Caranya: git config --global user.email sam@google.com git init
Perintah dasar GIT git add git clone Perintah git add bisa digunakan untuk menambahkan file ke index. Contohnya, perintah berikut ii akan menambahkan file bernama temp.txt yang ada di direktori lokal ke index: git clone Perintah git clone digunakan untuk checkout repositori. Jia repositori berada di remove server, gunakan: git add temp.txt git clone alex@93.188.160.58:/path/to/repository
Perintah dasar GIT git commit git status Perintah git commit digunakan untuk melakukan commit pada perubahan ke head. Ingat bahwa perubahan apapun yang di-commit tidak akan langsung ke remote repository. Gunakan: git status Perintah git status menampilkan daftar file yang berubah bersama dengan file yang ingin di tambahkan atau di-commit. Gunakan: git commit –m “Isi dengan keterangan untuk commit” git status
Perintah dasar GIT git push git pull git push adalah perintah git dasar lainnya. Push akan mengirimkan perubahan ke master branch dari remote repository yang berhubungan dengan direktori kerja Anda. Misalnya: git pull Untuk menggabungkan semua perubahan yang ada di remote repository ke direktori lokal, gunakan perintah pull: git push origin master git pull
Perintah dasar GIT git merge git diff Perintah merge digunakan untuk menggabungkan sebuah branch ke branch aktif. Gunakan: git diff Perintah git diff digunakan untuk menampilkan conflicts. Untuk melihat conflicts dengan file dasar, gunakan: git merge <nama-branch> git diff --base <nama-file>
Perintah dasar GIT git log git rm Dengan menjalankan peritah ini akan menampilkan daftar commits yang ada di branch beserta detail-nya. Contoh outputnya adalah: git rm Gunakan perintah ini untuk menghapus file dari index dan direktori kerja. Contohnya: commit 15f4b6c44b3c8344caasdac9e4be13246e21sadw Author: Alex Hunter <alexh@gmail.com> Date: Mon Oct 1 12:56:29 2016 -0600 git rm filename.txt
Perintah dasar GIT git fetch Perintah ini digunakan untuk menampilkan semua object dari remote repository yang tidak berada di direktori kerja lokal. Contohnya: git fetch origin
Terimakasih Sumber : Zuhar Musliyana, S.ST., M.T https://www.codepolitan.com/10-version-control-system-yang-harus-kamu-kenal https://git-scm.com/book/id/v1/Memulai-Git-Tentang-Version-Control https://agungsulistyan.wordpress.com/2016/06/16/mengenal-version-control-system http://www.candra.web.id/pengenalan-github-untuk-pemula/ https://www.hostinger.co.id/tutorial/cara-menggunakan-github-perintah-dasar-github/ Zuhar Musliyana, S.ST., M.T