13:19:50 <atoz-chevara> #startmeeting 13:19:50 <MeetBot> Meeting started Sat Dec 18 13:19:50 2010 UTC. The chair is atoz-chevara. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:19:50 <MeetBot> Useful Commands: #action #agreed #help #info #idea #link #topic. 13:20:25 <atoz-chevara> #topic How to use GIT part 2 13:20:50 <atoz-chevara> MeetBot: pingall training dimulai 13:20:50 <MeetBot> training dimulai 13:20:50 <MeetBot> antisoda ashadebi atoz-chevara CIA-1 coneman fajran FloodServ MeetBot qalbi 13:20:50 <MeetBot> training dimulai 13:21:17 <fajran> ok 13:21:20 <atoz-chevara> silahkan pak fajran :) 13:21:35 <fajran> bismillahirrohmanirrohiim.. 13:21:40 <fajran> kita mulai tutorial kali ini 13:21:52 <fajran> topiknya adalah berkolaborasi dengan git 13:22:03 <fajran> slide pendamping bisa dilihat di http://www.scribd.com/doc/45509577/Berkolaborasi-dengan-Git 13:22:46 <fajran> selain untuk keperluan versioning, VCS juga bisa dipakai untuk membantu kolaborasi 13:22:48 <atoz-chevara> #link http://www.scribd.com/doc/45509577/Berkolaborasi-dengan-Git : Berkolaborasi dengan Git 13:23:09 <undurundur> telat neh... 13:23:26 <fajran> kolaborasi di sini maksudnya adalah lebih dari satu orang bekerja bersama2 dalam satu proyek yang sama 13:23:47 <fajran> konkritnya, setiap orang yg terlibat bisa saling mempertukarkan perubahan yang dibuat 13:24:36 <fajran> kali ini kita akan membahas cara melakukan kolaborasi dengan bantuan Git 13:25:31 <fajran> dalam konteks ini, hal yang dipertukarkan adalah perubahan, alias commit, alias changeset, alias patch 13:26:26 <fajran> untuk seterusnya saya akan menggunakan kata "patch" 13:26:48 <fajran> di Git sendiri, pertukaran patch tidak memerlukan akses ke repositori Git yang ada 13:26:55 <fajran> karena patch juga bisa dipertukarkan melalui email 13:27:14 <fajran> namun tuk kali ini kita akan bertukar patch melalui repositori Git yang dapat diakses bersama 13:28:01 <fajran> saya sendiri akan menggunakan Github, namun rekan2 dipersilakan juga menggunakan layanan repo publik lain seperti Gitorious atau git.or.cz 13:28:11 <fajran> atau bahkan repo pribadi selama bisa diakses oleh orang lain 13:28:44 <fajran> kalau di dunia VCS terpusat (seperti subversion) 13:29:15 <fajran> seorang kontributor harus memiliki akses *tulis* ke repositori yang dipakai 13:30:28 <fajran> kadang hal ini bisa jadi masalah karena tidak semua pemilik proyek mau siapa saja bisa seenaknya mengirim patch ke repo yg dipakai 13:31:01 <fajran> namun di dunia VCS terdistribusi, berhubung repo nya sendiri terdistribusi alias siapa saja bisa memiliki repo pribadi 13:31:15 <fajran> maka pengiriman patch dari kontributor ke pemilik proyek bisa dilakukan secara "pasif" 13:31:32 <fajran> dalam artian si pemilik proyek akan *mengambil* patch dari repo si kontributor 13:31:48 <fajran> dengan demikian, kontributor tidak perlu memiliki akses tulis ke repo si pemilik proyek 13:32:14 <fajran> selain itu 13:33:24 <fajran> penggunaan VCS terdistribusi juga memungkinkan adanya delegasi dalam urusan penyimpanan patch ke repo utama 13:33:38 <fajran> contohnya dalam alur pengembangan kernel linux 13:33:47 <fajran> kalau sedang melihat slide, coba buka halaman 4 13:34:32 <fajran> kotak hijau bertuliskan developer di sana adalah para kontributor, alias penulis kode, alias pembuat patch 13:35:13 <fajran> mereka akan mengirim patch ke orang yg bertanggung jawab untuk memelihara driver/file yg berubah (kotak kuning) 13:35:44 <fajran> orang2 di kotak ini akan memeriksa patch yg dikirim dan jika layak, mereka akan mengirim ke pemelihara subsistem di atasnya (kotak biru) 13:36:01 <fajran> dan terus begitu sampai akhirnya sampe ke si linus itu sendiri yg akhirnya akan melakukan rilis 13:36:35 <fajran> oke.. sudah cukup ceritanya, sekarang mari kita praktek :D 13:37:00 <fajran> kali ini ceritanya saya memiliki proyek resep nusantara 13:37:18 <fajran> dan saya ingin mengajak rekan2 untuk berkontribusi resep masakan :D 13:37:39 <fajran> proyek ini saya simpan dalam repo git yang bisa diakses juga melalui https://github.com/fajran/tutorial-git 13:38:04 <fajran> nah 13:38:24 <fajran> langkah pertama untuk berkontribusi ini adalah dengan menyalin repositori tsb menjadi repo lokal 13:38:56 <fajran> github menyediakan 2 pintu gerbang untuk menyalin repo, yaitu melalui http dan juga melalui protokol git 13:39:07 <fajran> saya sarankan agar untuk menggunakan yg kedua 13:39:21 <fajran> cara untuk menyalin *repo lain* adalah dengan menggunakan git clone 13:39:24 <fajran> $ git clone git://github.com/fajran/tutorial-git.git 13:39:41 <fajran> nanti akan ada direktori bernama "tutorial-git" dan sebuah berkas "karedok.txt" di dalamnya 13:39:45 <fajran> silakan dijalankan.. 13:40:28 <coneman> sudah 13:40:31 <fajran> ok 13:40:42 <fajran> coba masuk ke direktori kerja tersebut 13:40:45 <fajran> $ cd tutorial-git 13:40:54 <fajran> ini adalah direktori kerja kita 13:41:05 <fajran> di dalamnya juga ada *repo lokal* git pribadi kita 13:41:34 <fajran> tanya: apa di sini semuanya menggunakan github? 13:41:45 <antisoda> iya pak 13:41:49 <antisoda> saya pakai 13:41:55 <fajran> diganti pertanyaannya: ada yg tidak menggunakan github? 13:42:19 <fajran> kalau memakai github, coba login dan buka https://github.com/fajran/tutorial-git 13:42:23 <fajran> lalu klik tombol Fork 13:43:14 <fajran> Fork di Github ini sama juga dengan git clone namun dilakukan di sisi Github 13:43:33 <fajran> repo yg saya punya ini hanya bisa ditulisi oleh saya 13:43:40 <fajran> namun jika repo ini di-fork 13:43:52 <fajran> maka repo hasil fork-nya akan menjadi repo pribadi rekan2 masing2 13:43:59 <fajran> sehingga bisa ditulisi oleh rekan2 sendiri 13:44:09 <fajran> sudah semua? 13:44:17 <coneman> sudah 13:44:20 <fajran> ok 13:44:21 <antisoda> sudah 13:44:27 <fajran> nah coba buka halaman repo hasil fork nya 13:44:46 <fajran> di sana Github menuliskan lokasi repo yg bisa diakses melalui ssh 13:44:55 <fajran> lokasi repo saya sendiri adalah git@github.com:fajran/tutorial-git.git 13:45:00 <fajran> seharusnya cuma beda di usernamenya saja 13:45:03 <fajran> sudah ketemu? 13:45:40 <coneman> sudah. git@github.com:coneman/tutorial-git.git 13:45:47 <antisoda> ada pak, dibaris ssh dan http 13:45:56 <fajran> antisoda: pakai yg ssh 13:46:06 <fajran> kalau sudah, mari kita lanjut 13:46:18 <fajran> sudah semua? 13:46:32 <antisoda> sudah pak git@github.com:antisoda/tutorial-git.git 13:47:13 <fajran> ok 13:47:24 <fajran> kalau kita punya sebuah direktori kerja git 13:47:37 <fajran> di dalamnya ada repo lokal git 13:47:57 <fajran> di dalamnya ada repo lokal git milik kita sendiri 13:48:08 <fajran> dan selain itu kita bisa mendaftarkan repo lain untuk dipantau 13:48:16 <fajran> atau diakses 13:48:30 <fajran> perintah untuk melihat daftar repo lain yg sedang kita pantau adalah git remote 13:48:31 <fajran> coba jalankan 13:48:32 <fajran> $ git remote 13:48:48 <fajran> karena tadi kita mengawali repo dengan melakukan clone repo lain 13:49:09 <fajran> repo tadi otomatis akan didaftarkan dengan nama "origin" 13:49:21 <fajran> untuk melihat informasi sebuah repo, tulis 13:49:31 <fajran> $ git remote show [namarepo] 13:49:40 <fajran> contohnya 13:49:43 <fajran> $ git remote show origin 13:50:22 <fajran> nanti akan keluar tulisan seperti di slide halaman 6 13:50:30 <fajran> nah 13:50:51 <fajran> ceritanya kita akan mengubah proyek resep ini dengan cara menambahkan resep masing2 13:50:58 <fajran> kalau ada yg mau menambahkan berkas README juga silakan 13:51:14 <fajran> perubahan yg kita buat ini akan kita kirim ke repo kita sendiri di Github 13:51:23 <fajran> oleh karena itu, repo pribadi kita di Github perlu didaftarkan 13:51:39 <fajran> caranya dengan perintah git remote add [nama-repo] [alamat-repo] 13:51:44 <fajran> coba tuliskan 13:52:03 <fajran> $ git remote add github git@github.com:username-di-github/tutorial-git.git 13:52:17 <fajran> sesuaikan sendiri alamat reponya sesuai dengan yang diberikan oleh github tadi 13:52:35 <fajran> setelah ini, kalau kita menjalankan "git remote" lagi 13:52:45 <fajran> seharusnya akan ada 2 buah repo yg terdaftar, yaitu "origin" dan "github" 13:52:54 <fajran> coba dijalankan.. 13:54:25 <fajran> sudah semua? 13:54:34 <undurundur> sudaaaah... 13:54:35 * qalbi suda 13:54:44 <fajran> oke 13:54:52 <fajran> sekarang coba tambahakan sebuah resep baru 13:54:57 <fajran> mudah2an ngga ada yg sama :D 13:55:19 <coneman> tanya: $ git remote show punyasaya 13:55:20 <coneman> Permission denied (publickey). 13:55:20 <coneman> fatal: The remote end hung up unexpectedly 13:55:25 <fajran> coba aja salin satu resep dari http://id.wikibooks.org/wiki/Kategori:Resep_dari_Indonesia 13:55:38 <fajran> coneman: sudah upload ssh public key ke github? 13:56:05 <coneman> fajran: hehe.. belum :D 13:56:25 <fajran> coneman: coba upload dulu 13:56:59 <fajran> resepnya ditulis di berkas baru 13:57:02 <fajran> 1 berkas 1 resep 13:57:06 <fajran> nama berkas adalah nama resep 13:57:23 <fajran> kalau sudah dibuat, simpan dan commit 13:57:28 <fajran> $ git add resep-baru.txt 13:57:35 <fajran> $ git commit -m "resep baru" 14:03:55 <fajran> apa sudah semua? 14:05:33 <qalbi> sudah, 14:05:38 <antisoda> fajran: saya sudah 14:05:48 <fajran> sudah dicommit ke repo lokal? 14:06:03 <qalbi> sudah 14:06:07 <fajran> ok 14:06:15 <fajran> patch terakhir ini masih ada di repo lokal 14:06:43 <fajran> untuk mengirim ke repo lain (misalnya yg ada di github), kita perlu melakukan push 14:06:46 <fajran> perintah dasarnya adalah 14:06:53 <fajran> $ git push [nama-repo] [nama-cabang] 14:07:01 <fajran> (untuk percabangan, kita akan bahas di lain waktu) 14:07:05 <fajran> contohnya adalah 14:07:08 <fajran> $ git push github master 14:07:26 <fajran> coba dijalankan 14:07:35 <fajran> seharusnya setelah ini perubahan terakhir bisa dilihat juga melalui github 14:07:57 <fajran> saya sendiri baru saja menambahkan resep pangsit ke repo saya di github https://github.com/fajran/tutorial-git 14:08:09 <fajran> mudah2an ngga ada nambahin resep sama :D 14:08:41 <fajran> saya udah ngelihat qalbi dan coneman 14:08:43 <ucca> ini gmn cr.a ?? 14:09:51 <fajran> dari antisoda juga udah kelihatan 14:11:19 <coneman> tanya: kan tadi repo yang dipantau ada 2 (origin dan punyasaya), apakan waktu nge push, di push ke kedua repo tsb? 14:11:57 <fajran> coneman: ngga, cuma ke repo yg disebut 14:12:08 <fajran> kalau pushnya ke "origin" maka akan dipush ke "origin" saja 14:12:13 <coneman> ups 14:12:20 <coneman> iya ya :D 14:12:30 * coneman ngantuk :D 14:13:09 <coneman> ok. terima kasih 14:13:30 <fajran> kalau ngeliat di https://github.com/fajran/tutorial-git/network 14:13:42 <fajran> saya ngeliat coneman antisoda dan qalbi udah ngirim patch 14:14:01 <fajran> nah sekarang saya akan menggabungkannya jadi satu 14:14:23 <fajran> caranya.. 14:14:40 <fajran> saya akan nambahin 3 repo yg ada itu ke direktori kerja saya dengan git remote 14:14:43 <fajran> misalnya 14:15:00 <fajran> $ git remote add qalbi git://github.com/qalbi/tutorial-git.git 14:15:17 <fajran> lalu saya akan mengmabil perubahan dari repo qalbi dengan git pull 14:15:24 <fajran> $ git pull [nama-repo] [nama-cabang] 14:15:25 <fajran> contohnya 14:15:29 <fajran> $ git pull qalbi master 14:15:57 <fajran> setelah itu saya akan push lagi ke github saya 14:16:06 <fajran> agar bisa dilihat juga oleh yang lain 14:17:08 <fajran> ok sekarang sudah ada di github semua 14:17:09 <fajran> coba cek https://github.com/fajran/tutorial-git 14:18:57 <fajran> kalo liat hubungan antar repo, bisa dilihat saya udah menggabungkan perubahan dari repo lain 14:18:58 <fajran> https://github.com/fajran/tutorial-git/network 14:19:20 <fajran> nah.. berhubung repo saya juga terdaftar di direktori kerja rekan2 14:19:27 <fajran> coba ambil perubahan terakhir dari saya 14:19:30 <fajran> $ git pull origin master 14:19:43 <fajran> nanti semua perubahan terakhir akan terlihat 14:19:45 <fajran> cek juga log nya 14:19:46 <fajran> $ git log 14:21:39 <fajran> coneman: coba cek slide halaman 11 ttg push 14:22:08 <fajran> sudah kah? 14:22:13 <fajran> sudah lihat perubahan terakhir? 14:22:22 <fajran> kalau mau, coba push ke github masing2 juga 14:23:16 <undurundur> gak istirahat? ketinggalan neh :( 14:23:58 <coneman> fajran: sudah di push ke github pribadi 14:24:05 <fajran> undurundur: sudah sampe mana? 14:24:53 <undurundur> fajran: masih belum bisa push 14:25:00 <undurundur> baru buat ssh key lagi 14:25:01 <fajran> undurundur: coba buat key baru aja 14:25:04 <undurundur> iya sudah 14:39:22 <coneman> masih lanjut ya? 14:41:37 <fajran> okeh 14:41:48 <fajran> undurundur: udah ngirim juga, sudah saya ambil, gabung, dan push balik ke repo saya 14:41:56 <fajran> sekarang udah ada README nya juga :D 14:42:07 <fajran> nahh 14:42:18 <fajran> berhubung materi dari saya sendiri udah abis 14:42:27 <fajran> sekarang kalo ada yg mau tanya silakan ditanyakan 14:43:03 <fajran> ngomong2 14:43:26 <fajran> ngerti semua kah dg proses yg baru saja kita lakukan ini? 14:43:37 * atoz-chevara tanya: untuk merge bagaimana pak? apakah nambahin 3 repo itu sama dgn merge? 14:44:15 <fajran> atoz-chevara: merge itu pada dasarnya menggabungkan 2 buah repo menjadi 1 14:44:46 <fajran> git remote itu cuma tuk mendaftarkan repo yang *dipantau* 14:44:52 <fajran> bukan menggabungkan isinya 14:45:27 * atoz-chevara tanya: nah untuk menggabungkan itu bagaimana pak? apa sama seperti di cvs/svn? 14:46:01 <fajran> ada bbrp cara 14:46:21 <fajran> cara sapu jagadnya itu dengan git pull 14:46:29 <fajran> git pull [namarepo] [namacabang] 14:46:43 <fajran> itu akan mengambil seluruh perubahan di repo/cabang tersebut 14:46:52 <fajran> lalu menggabungkannya dengan cabang yang *sedang aktif* 14:47:09 <fajran> andaikan kita sedang ada di cabang master 14:47:19 <fajran> maka git pull punya-orang cabang-keren 14:47:23 * atoz-chevara oke 14:47:34 <fajran> akan menggabungkan cabang "cabang-keren" dari repo "punya-orang" ke cabang "master" di repo lokal kita 14:47:53 <fajran> cara yang lebih bertahap itu dengan membagi git pull menjadi 2 tahap 14:47:58 <fajran> yaitu git fetch dan git merge 14:49:14 <fajran> andai kita mendaftarkan repo bernama "orang-lain" 14:49:21 <fajran> perintah berikut ini 14:49:43 <fajran> $ git fetch orang-lain 14:50:39 <fajran> akan mengambil seluruh patch (changeset) yg ada di repo tsb 14:50:52 <fajran> tapi *tidak* akan secara otomatis digabungkan ke cabang yang sedang aktif 14:51:13 <fajran> untuk menggabungkannya kita perlu menjalankan git merge secara manual 14:51:22 <fajran> git merge [nama-repo]/[nama-cabang] 14:52:03 <fajran> untuk percabangan (termasuk merge dan rebase) rencananya akan saya bahas di tutorial berikutnya (ada kan? :D) 14:52:18 <fajran> atoz-chevara: cukup kah? 14:52:55 * atoz-chevara sudah pak :) 14:53:04 <fajran> sip 14:53:15 <fajran> <antisoda> fajran: pak, tadi kan diawal fork. itu apa ya pak> 14:53:27 <fajran> antisoda: fork yg disebut di awal itu merujuk ke istilah fork di github 14:53:46 <fajran> di github itu kita bisa bikin repo yang merupakan salinan dari repo orang lain 14:53:51 <fajran> istilahnya fork 14:54:16 <fajran> mekanisme yg terjadi di belakang layar seharusnya sama saja dengan git clone 14:54:29 <fajran> tapi kan kalau git clone dari github, nyampenya di kompi kita sendiri 14:54:40 <fajran> trus kalau mau nyampe di github di repo pribadi kita, kita perlu ngepush lagi 14:54:49 <fajran> nah biar ngga bolak balik, github ngasih fasilitas fork tadi itu 14:55:16 <undurundur> *sip! 14:55:30 <fajran> ada pertanyaan lagi? 14:55:39 <fajran> 5 menit lagi saya mesti udahan 14:55:54 <undurundur> *sementara cukup pak 14:56:07 <antisoda> cukup pak 14:56:24 <fajran> atoz-chevara: yg berikutnya kapan? minggu depan saya ngga bisa 14:56:41 <undurundur> fajran: bisanya kapan pak? 14:56:56 <fajran> yaa selain minggu depan insya Allah bisa 14:57:57 <atoz-chevara> atoz-chevara: berarti ada sesi ke-3 y pak? 14:58:33 <fajran> atoz-chevara: kalo gak ngebahas percabangan kayanya belom komplit git nya :D 14:59:22 <atoz-chevara> fajran: iya...benar pak, berarti untuk tanggal 23 nanti di isi dulu oleh pak udienz 15:00:24 <fajran> kayanya saya masih bisa bantu bikin slide ttg percabangan 15:00:27 <fajran> kalo mau ya pake aja 15:00:52 <atoz-chevara> fajran: berarti sesi ke-3 di awal tahun pak 15:01:09 <fajran> ok insya Allah bisa 15:01:40 <atoz-chevara> tanggal 23 rencana'a pak udienz ingin mengisi tentang pemaketan 15:01:52 <fajran> oh ok 15:02:13 <atoz-chevara> karena ada revisi dari materi2 pemaketan yg telah di buat'a terdahulu 15:03:28 <atoz-chevara> oke, baiklah...untuk sesi 2 di tutup dan akan di lanjutkan ke sesi 3 yang waktu'a akan di 15:03:47 <fajran> ok 15:03:50 <atoz-chevara> umumkan di forum, milis dan group debian-id di facebook 15:03:55 <fajran> kalau begitu.. saya tutup tutorial kali ini 15:04:01 <fajran> terima kasih atas peransertanya 15:04:14 <fajran> alhamdulillahirobbil'aalamin 15:04:28 <antisoda> terima kasih banyak pak fajran 15:04:42 <antisoda> pak atoz-chevara juga, terima kasih banyak 15:04:56 <atoz-chevara> fajran: sama-sama pak :) 15:06:57 <atoz-chevara> tema pada minggu berikutnya mengenai pemaketan paket debian 15:07:00 <undurundur> semua: matur nuwun 15:07:01 <atoz-chevara> yg akan di adakan pada hari kamis tanggal 23 masih dengan kanal yang sama 15:07:30 <atoz-chevara> maka dari itu saya akan menutup training ini :) 15:07:55 <atoz-chevara> terima kasih untuk semua'a yg telah hadir dan juga pemateri :) 15:08:04 <atoz-chevara> #endmeeting