Blog.YHT.Web.ID

Icon

Bosan adalah awal dari penciptaan perubahan.

Manajemen Kode Sumber dengan Diff dan Patch

Sebenarnya ini adalah masalah yang saya alami dalam beberapa bulan yang lalu sebagai seorang kontributor pengembangan sebuah perangkat lunak, namun saya kesulitan dalam berkontribusi karena terbatasnya akses dan masalah platform yang dipakai. Dan di sini saya akan berbagi mengenai diff dan patch yang bisa dijadikan solusi bahkan dalam busybox-pun keduanya sudah ada.

Bila Anda adalah seorang pengembang yang tidak memiliki akun pada layanan manajemen versi dan merupakan sebuah kelompok yang tidak bisa berkomunikasi langsung dalam suatu jaringan komputer, manajemen perubahan kode sumber akan menjadi suatu masalah. Dan bila platform yang Anda pakai adalah *nix-like, misal : GNU/Linux, maka berikut solusinya.

Dalam sebuah pengembangan dipastikan ada pengembang inti yang biasanya sekaligus sebagai kompilator dimana rilis resmi berasal dari beliau. Yang dipermasalahkan adalah manajemen kode sumber dari kontributor yang dikirimkan kepada beliau ini. Mengirimkan berkas yang diubah akan sangat membingungkan terlebih bila perangkat lunak yang dikembangkan secara merdeka. Bila pengembang yang mengirimkan adalah yang bertugas akan bagian itu saja memang bukan menjadi masalah, namun bila seorang pengembang menemukan kesalahan pada bagian yang bukan bagiannya sedangkan itu penting dan menggangu kinerja, keadaan itu sulit dilakukan.

Untuk itulah diff dan patch diperlukan.

Diff adalah perangkat lunak yang digunakan untuk membandingkan dua buah berkas maupun dua buah direktori. Bentuk keluaran adalah perbedaan antara file baris demi baris dalam beberapa format sesuai dengan opsi. Untuk berkas yang identik diff tidak memiliki keluaran sedangkan untuk berkas binary hanya memberikan keluaran bahwa terdapat perbedaan di berkas.

Keluaran dari perintah diff inilah yang disebut dengan patch atau jahitan. Dan patch atau jahitan itu bisa digunakan untuk memperbaharui kode sumber yang baru dengan perintah patch.

Contoh penggunaan diff adalah sebagai berikut :

yht@slackware:~$ diff -Naur versi_1 versi_2 > jahitan_1_ke_2.patch

Akan terbentuk berkas `jahitan_1_ke_2.patch` yang merupakan patch atau jahitan yang akan dikirimkan ke kompilator untuk dibuatkan versi rilis. Dan sang kompilator hanya tinggal menggunakan perintah patch untuk menggabungkannya. Berikut contohnya :

yht@slackware:~$ cd versi_1/
yht@slackware:~/versi_1$ patch -p1 jahitan_1_ke_2.patch
yht@slackware:~/versi_1$ cd ..
yht@slackware:~$ mv versi_1 versi_2

Dan `versi_2` siap di rilis.

Untuk lebih jelasnya, silakan baca manual diff [1] dan manual patch [2].

Selamat berkarya!

Referensi :
[1] http://www.gnu.org/software/diffutils/manual/html_mono/diff.html
[2] http://linux.die.net/man/1/patch
[3] http://www.gnu.org/software/diffutils/

Kategori: /artikel

Tag: , , ,

Leave a Reply