Udah sejak beberapa bulan lalu ngulik git supaya bisa dioperasikan dengan PHP. Permasalahan utama adalah ketika melakukan perintah transaksi. Kalo perintah fetch data seperti git status, dan git add, sudah tidak ada masalah. Giliran commit kagak bisa. Sejak itu saya tinggalkan ulikan ini.
Kemarin coba-coba nyari lagi library PHP untuk pengoperasian git. Ketemu deh sama repositori ini http://kbjr.github.io/Git.php. Permasalahan serupa terjadi. Ketika menjalankan perintah status dan add tidak ada kendala, message dari gitnya muncul dan dirender di browser. Giliran manggil perintah commit, tidak ada pesan dari git. Saya cek via terminal pun reponya gagal commit. Nyari-nyari sana-sini di google, ketemu beberapa permasalahan serupa, tapi solusinya tidak menyelesaikan permasalahan yang saya hadapi. Anehnya di repositori Git.php itu tidak dijelaskan setting ini itu yang mempengaruhi keberhasilan proses. Tidak juga ditemukan satupun issue yang membahas hal serupa.
Saya kira permasalahan ada di user permission. Saya sudah coba berbagai hal terkait chmod dan chown. Sampai akhirnya tiba-tiba saya teringat perintah git config. Saya tidak tau bagaimana proses saya ingat itu, makanya saya bilang tiba-tiba. Saya coba perintah git config user.name "yllumi" dan git config user.email "toha.samba@gmail.kom" dan perintah commit dari PHP berhasiiiiil! :D
Lalu saya coba bikin lagi repo di tempat yang lain. Saya kasih set config user.name dan user.emailnya seperti di atas. Aneh, gagal lagi. Lalu saya coba set chmod dulu ke 777 kemudian set config user.name dan email lagi dan demikian berhasil. Saya mulai paham tentang penggunaan hak akses. Pada repo di lokal mungkin tidak bermasalah bila hak akses diset 777, artinya siapapun bisa mengakses dan mengedit repository. Saya coba set chmod ke 755, lalu saya coba commit, dan gagal. Hmm.. saya kita itu karena saya tidak mengeset permission untuk write pada group www-data sebagai grup yang digunakan oleh git untuk mengakses repo. maka saya chown www-data ke repo tersebut, kemudian saya coba commit dan sukses! Berarti kesimpulannya, ada dua pengaturan yang harus dilakukan, pertama pemberian hak akses, dan pengesetan config user pada repository.
Percobaan terakhir saya lakukan. Mulai dari pembuatan repo baru, membuat file di dalam repo, hingga commit repo, semuanya dilakukan oleh PHP. Percobaan pertama dilakukan tanpa mengeset config user. Hasilnya gagal. Percobaan kedua dilakukan dengan mengeset config user. Hasilnya sukses. Dari sini bisa disimpulkan bahwa kunci dari kesuksesan commit adalah set git config. :)
Udah itu aja. Sukses!
Cari di blog ini
Development
Git
PHP
0 tanggapan:
Posting Komentar
terima kasih sebelumnya untuk tanggapannya ^_^