Langsung ke konten utama

Menghindari Kebingungan Karena Git End Line Pada Windows Pada Multiplatform Development

Welcome file

Menghindari Kebingungan Karena Git End Line Pada Windows Pada Multiplatform Development

Linux menggunakan karakter Line Feed (lf) untuk menandai pergantian baris pada file-file teksnya, sedangkan Windows menggunakan Carriage Return dan Line Feed (crlf).

Development yang menggunakan git pada lingkungan multiplatform dan men-targetkan multiplatform linux dan windows perlu menggunakan konfigurasi autocrlf auto. Secara default, git for windows memang menggunakanan autocrlf yaitu menyimpan dengan lf dan men-checkout dilingkungan windows dengan crlf.

Default config git for Windows sama dengan perintah dibawah ini:

git config --global core.autocrlf auto

Akan tetapi ssebagian file bisa berjalan normal baik dengan lf maupun crlf, tetapi sebagian lagi mesti menggunakan lf atau mesti menggunakan crlf.

Hal ini bisa menimbulkan masalah dan kebingungan saat 1 folder pada 1 filesystem diakses oleh 2 sistem operasi, misalnya dalam dual boot laptop atau windows dengan WSL (Windows Subsystem for Linux).

Misalnya dengan memunculkan pesan seperti ini,

bash: ./my-script.sh: /bin/sh^M: bad interpreter: No such file or directory

Atau justru memunculkan keanehan karena string ditimpa karena menerima arahan cr Cariage Return pada akhir nilai variabel.

Contohnya, berkas script yang menggunakan crlf akan menghasilkan keanehan,

export MY_VAR="My First Variable"
echo "${MY_VAR} Yeeha!"

Akan menghasilkan:

Yeeha!t Variable

Untuk menghindari kebingungan ada baiknya kita definisikan file-file apa saja yang mesti tetap menggunakan lf saat di checkout, dengan menetapkannya pada berkas .gitattributes.

*.sh text eol=lf

Setelah ditetapkan eksekusi perintah berikut untuk meng-update file-file yang sudah di checkout sesuai isi file .gitattributes

git rm --cached -r . && git reset --hard

Komentar

Postingan populer dari blog ini

Fungsi split di J2ME

Fungsi String.split() atau yang dikenal juga sebagi fungsi explode() oleh para programmer PHP. Fungsi ini berguna untuk memisahkan suatu String menjadi array (himpunan) string dengan memecah string sumber berdasarkan delimiter yang kita tentukan. Tidak seperti J2SE, J2ME tidak memiliki fungsi ini pada platform-nya. Berikut ini adalah kode yang saya tulis untuk mengisi kekosongan tersebut:

Menyalakan mod rewrite apache di linux ubuntu

Jika pada saat menyalakan  apache muncul pesan seperti ini: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration Action 'configtest' failed. The Apache error log may have more information.    ...fail! Besar kemungkinan ini menunjukan penggunaan rule rewrite pada berkas konfigurasi (baik dari .htaccess , berkas-berkas di /etc/apache2/conf.d/ , di /etc/apache2/siteavailable/default maupun di berkas lainnya) , sementara mod rewrite -nya belum dinyalakan. Karena itu, di command line ketik: sudo a2enmod rewrite untuk menyalakan mod rewriter apache-nya. Lalu restart apache, sudo /etc/init.d/apache2 restart Oke, lalu cara mematikannya gimana? Gampang: sudo a2dismod rewrite sudo /etc/init.d/apache2 restart

subnetmask untuk membatasi jumlah alamat (host) pada jaringan

Misal pada jaringan class C (yang artinya memiliki netmask 255.255.255.0) yang memiliki NetID 192.168.1.0 kita ingin membatasi jumlah host /komputer yang ada di jaringan tersebut menjadi 5. Maka yang pertama kita lakukan adalah mengubah bentuk desimal netmask menjadi bentuk biner NetID HostID 11111111 11111111 11111111 00000000 24 bit 8 bit Catatan: bit = digit biner Angka 5 (jumlah minimal yang dialokasikan) juga diubah ke bentuk biner: 5 10 = 101 2 Lalu hitung jumlah digit hasil pengubahan bentuk di atas, 101 ~ 3 digit biner. Dari 8 digit biner HostID kita isikan dari kanan kekiri 0 sebanyak 3 digit biner yang merupakan hasil penghitungan diatas, sedangkan 5 digit yang tersisa (= 8 – 3 digit) diisikan dengan nilai 1 .  Maka didapatlah HostID ini 11111000 yang bila di ubah bentuknya ke dalam desimal menjadi 248 . HostID diatas bila digabungkan dengan netmask induknya maka didapatlah subnetmask 255.255.255.248 Jumlah alamat yang disediakan netma...