Yazılım geliştirmede iki temel araç Patch ve Diff'tir . Nasıl çalıştıkları bir sır değil, ama bence bu ilginç bir yazı olacak. 😉
Her ikisi de çok güçlüdür ve bu aynı yüzeye dokunmak gibidir, daha fazla yardımcı programa ve başka işlevlere sahiptirler. Temel olarak bu iki araçla sürüm kontrolü oluşturabiliriz,
Diff
Karşılaştırmaya atıfta bulunuruz, "orijinal" bir dosyayı "yeni" dosya ile karşılaştırır ve aralarında var olan farklılıklar hakkında bizi bilgilendirir. Bu araç aynı zamanda programlarımız için yamalar oluşturmak için kullandığımız .patch dosyalarını oluşturmamıza olanak tanır.
Patch
Bu, orijinal dosyamıza "yama" uyguladığımız, .patch dosyasındaki talimatlara göre satır ekleyip / veya kaldırdığımız komuttur.
Ayrıca, .patch dosyasına ihtiyaç duymadan yama uygulamak için kullanılan görsel bir araç olan vimdiff de var ; bu araç "orijinal" ve "yeni" sürümleri karşılaştırıyor ve aynı dosya içinde satır satır veya tüm belgeyi düzenlemenize olanak tanıyor. Bunu açıklamayacağım, ancak bahsetmeye değer olduğunu düşünüyorum.
örnek
Şimdi eğlence. Misal!
Durum böyle, isminizi ve yaşınızı soran harika bir senaryomuz var, 18 yaşın üzerindeyseniz size oy verebileceğinizi söylüyor, aksi takdirde oy veremeyeceğinizi söylüyor.
orijinal.sh
#! / bin / bash echo "Adınızı girin:" adı oku echo "Yaşınızı girin:" [[18 -lt $ yaş]] ise yaşı okuyun ve ardından "Merhaba $ isim, $ yaşındasınız ve oy verebilirsiniz! " else echo "Merhaba $ isim, $ yaşındasın ve oy kullanamazsın ..." fi
Kodun Vim'deki görüntüsü
Bitti, işte çalışan komut dosyası:
Her şey yolunda görünüyor
Yani iyi kullanıcılar olduğumuz için senaryomuzu bir arkadaşımızla paylaşıyoruz :) ama bir kusuru olduğunu, 18 yaşındayken olması gerektiğinde oy kullanamayacağını söyleyen bir mesaj alıyoruz.
Mantık hatası
Şimdi küçük hatayı düzeltmeye ve birkaç değişiklik yapmaya başlıyoruz ...
new.sh
#! / bin / bash maxAge = 18 echo "Adınızı girin:"; adı oku echo "Yaşınızı yazın:"; [[$ maxAge -le $ yaş]] ise yaşı oku; then echo "Merhaba $ name, $ yaşındasın ve oy verebilirsin!" else echo "Merhaba $ isim, $ yaşındasın ve oy kullanamazsın ..." fi çıkış 0
Vim'de yazılmış yeni kod.
Diyelim ki senaryo çok ağır. Yani betiğin tamamını tekrar göndermemek için bir .patch oluşturuyoruz
$ diff -u original.sh new.sh> patch.patch
Ve şimdi yama dosyamız hazır. İşte Vim'de bir görünüm :
Bir .patch dosyasıyla ilgili talimatlar böyle görünür. Beyazda değiştirilmemiş çizgiler, mavi ile çıkarılanlar, turuncu renkte eklenenler.
Bunu uygulamak için, yamalanacak betikteki .patch dosyasını kullanmamız yeterlidir. Burada bu dosya originalAmigo.sh olarak adlandırılmıştır ve original.sh betiğinin birebir kopyasıdır .
Arkadaş senaryosu
$ patch originalFriend.sh <patch.patch
Ve bu da orijinalAmigo.sh dosyamızı şu şekilde bırakıyor :
Yamayı uyguladıktan sonra arkadaş komut dosyası
Gördüğünüz gibi, farkları almak ve yamaları uygulamak çok kolay. Hepsi benden.
Selam millet, önümüzdeki Cuma okuyacağız.