Terminal Jumaat: Patch dan Diff

Dua alat penting dalam pembangunan perisian adalah patch y Diff. Ia bukan misteri bagaimana mereka berfungsi, tetapi saya fikir ini akan menjadi siaran yang menarik. 

Kedua-duanya sangat kuat, dan ini seperti menyentuh permukaan, mereka mempunyai lebih banyak utiliti dan fungsi lain. Pada asasnya dengan dua alat ini kita dapat membuat kawalan versi,


Diff

Kami merujuk kepada perbandingan, ia membandingkan fail "asli" dengan yang "baru", dan memberitahu kami tentang perbezaan yang ada di antara mereka. Alat ini juga membolehkan kita membuat fail .patch yang kita gunakan untuk membuat tambalan untuk program kita.


patch

Ini adalah perintah dengan mana kita benar-benar "menambal" fail asli kita, menambahkan dan / atau menghapus baris sesuai dengan petunjuk yang terdapat dalam file .patch


Terdapat juga vimdiff, yang merupakan alat visual untuk menerapkan tambalan tanpa memerlukan fail .patch, kerana membandingkan "asli" dan "baru" dan pada file yang sama adalah mungkin untuk mengedit baris demi baris atau keseluruhan dokumen. Ini tidak akan saya jelaskan tetapi saya rasa ia patut disebut.


contoh

Sekarang keseronokan adalah. Contoh!

Ini masalahnya, kami mempunyai skrip hebat yang menanyakan nama dan usia anda, jika anda berusia lebih dari 18 tahun ia memberitahu anda bahawa anda boleh memilih, jika tidak, ia memberitahu anda bahawa anda tidak boleh memilih.

asli.sh

#! / bin / bash echo "Masukkan nama anda:" baca nama echo "Masukkan umur anda:" baca umur jika [[18 -lt $ age]] kemudian gema "Hello $ name, anda berumur $ dan anda boleh memilih!" yang lain bergema "Hello $ name, anda berumur $ dan anda tidak boleh mengundi ..." fi
Imej kod di Vim

Imej kod di Vim

Selesai, berikut adalah skrip yang sedang berjalan:

Semua nampaknya berjalan lancar

Semua nampaknya berjalan lancar

Oleh itu, sebagai pengguna yang baik, kami berkongsi skrip kami dengan rakan :), tetapi kami mendapat mesej yang mengatakan bahawa ia mempunyai kekurangan, bahawa ketika berusia 18 tahun ia mengatakan bahawa ia tidak dapat memilih bila seharusnya.

Kesalahan logik :(

Ralat logik 

Sekarang kita mula membetulkan kesalahan kecil dan membuat beberapa pengubahsuaian ...

baru.sh

#! / bin / bash maxAge = 18 gema "Masukkan nama anda:"; baca nama gema "Tulis umur anda:"; umur baca sekiranya [[$ maxAge -le $ age]]; kemudian gema "Hello $ name, anda berumur $ tahun dan anda boleh mengundi!" yang lain bergema "Hello $ name, anda berumur $ tahun dan anda tidak dapat mengundi ..." fi keluar 0
Kod baru ditulis dalam Vim

Kod baru ditulis dalam Vim

Katakan skripnya sangat berat. Jadi, untuk mengelak daripada menghantar keseluruhan skrip sekali lagi, kami mencipta .patch 

$ diff -u original.sh new.sh> patch.patch

Dan sekarang kita mempunyai tampalan kita. Inilah pandangan mengenai Vim:

Seperti inilah arahan untuk paparan .patch. Dengan warna putih garis-garis yang tidak diubah, berwarna biru yang ditanggalkan, berwarna oren yang ditambahkan.

Seperti inilah arahan untuk paparan .patch. Dengan warna putih garis-garis yang tidak diubah, berwarna biru yang ditanggalkan, berwarna oren yang ditambahkan.

Dan untuk menerapkannya kita hanya menggunakan file .patch dalam skrip yang akan ditambal. Di sini disebut asliAmigo.sh, yang merupakan salinan skrip yang tepat asli.sh

Skrip rakan

Skrip rakan

$ patch originalFriend.sh <patch.patch

Dan ini meninggalkan fail kami asliAmigo.sh Jadi:

Skrip rakan setelah menggunakan patch

Skrip rakan setelah menggunakan patch

Seperti yang anda lihat, sangat mudah untuk mendapatkan perbezaan dan menggunakan tambalan. Itu semua dari saya.

Salam orang, kita akan baca Jumaat depan.


Tambahkan sebagai sumber pilihan dalam Google