m1gin 96

VAV projesinde yanlışlıkla tüm dosyalarda bul değiştir yapıldı!!!! :(((

.word. -> user

Derleme sırasında hata veren kısımlar düzeltildi ancak .js yahut ascx dosyaları içerisinde değişen kısımlar tespit edilemedi. 
Değişiklikleri bulmak için "user" kelimesi aratıldığında ise, çok sayıda sonuç çıktığından onları turlamak oldukça zahmetli olacaktı. Nitekim bu işe kalkışmış ve bir süre sonra üstesinden gelemeyeceğimi hissedip vazgeçtim.

İçim rahat etmemiş olsa da, ileride hata farkettiğimde düzeltirdim artık.

Biraz vakit geçmişti ki, projenin zaman önce alınmış yedeği geldi aklıma.. İyi de dosyaları nasıl karşılaştıracaktım?

Sonra diff komutunu hatırladım... Uğraş sonrasında aşağıdaki komutla istediğime nail olabildim. :)

find ./ -regextype posix-extended  -iregex ".*\.(cs|as.x|js|css|master)"  -type f | while read l; do f="${l/.\//}"; t="/media/data/Belgelerim/PROJE/mono/vav/$f"; diff "$f" "$t" | grep "user"; done;

Bu komutlarla, projenin şu anki ve eski hallerinde bulunan dosyalar karşılaştırılmakta ve değişiklikler listelenmektedir. Değişiklikleri minimize etmek için de  grep kullanılarak "user" kelimesini barındıran sonuçlar listelettirildi. Böylece karşılaştırma çok daha kolay hale geldi! :)

Ve doğrusu iyi ki bu karşılaştırmayı yapmışım! Zira projede değişen ve işleyişi bozan, normalde farkedemediğim birkaç yeri yakalayıp düzeltebildim! :)


Hazır diff komutunun bunca faydası dokunmuşken, alabildiği parametreleri gözden geçirdim ve dikkatimi çekenleri kısaca not edeyim dedim.

  -i, --ignore-case               ignore case differences in file contents
  -E, --ignore-tab-expansion      ignore changes due to tab expansion
  -Z, --ignore-trailing-space     ignore white space at line end
  -b, --ignore-space-change       ignore changes in the amount of white space
  -w, --ignore-all-space          ignore all white space
  -B, --ignore-blank-lines        ignore changes where lines are all blank
  -I, --ignore-matching-lines=RE  ignore changes where all lines match RE

  -a, --text                      treat all files as text
      --strip-trailing-cr         strip trailing carriage return on input

  -r, --recursive                 recursively compare any subdirectories found
  -x, --exclude=PAT               exclude files that match PAT
  -X, --exclude-from=FILE         exclude files that match any pattern in FILE

Görünen o ki, "find" kullanmadan, doğrudan klasörleri de karşılaştırmak mümkün olabilirmişti. 

------------------------

Compare folders and list different files:

  • diff -r /home/m1/sil/net/pics/  /home/m1/sil/net/eb123/

Add to: