Archive

Archive for Ocak, 2012

Git – WinMerge ile diff Kullanımı

Ocak 28th, 2012 No comments

Versiyon kontrol sistemi olarak Git aracını kullananlar sanıyorum ki diff komutunu kullanarak dosyaları sıklıkla karşılaştırıyorlardır. Git Bash kullanarak çalıştırılan bu komutun çıktısı da konsol ekranında gösterildiği için, çok sağlıklı bir karşılaştırma yapmak mümkün olmayabiliyor. Özellikle dosyalar arasındaki farklılıklar arttıkça bunları takip etmek çok zorlaşıyor. Bir dosya karşılaştırma aracı olan WinMerge programını Git ile entegre ederek diff komutunun çıktısını görsel olarak çok daha gelişmiş bir biçimde görebiliriz.

Bunu yapmak için öncelikle http://winmerge.org/ adresine giderek WinMerge programını indirip kuralım. Yalnız programı kurarken “Program Files” klasörüne değil de direk “C” dizininin altına kurmakta fayda var çünkü “Program Files” klasörünün ismi boşluk içerdiği için Git ile entegrasyonda bazen problemler olabiliyor. İkinci adım olarak boş bir metin dosyası yaratıp içerisine aşağıdaki satırları girelim (WinMerge programını “C” dizininin altına kurduğumuzu varsayıyorum):

#!/bin/sh
# diff is called by git with 7 parameters:
#  path old-file old-hex old-mode new-file new-hex new-mode
"C:/WinMerge/WinMergeU.exe" "$2" "$5" | cat

Bu dosyayı git-diff-wrapper.sh adıyla kaydedelim. Ancak dosyanın uzantısının .txt olarak kalmadığına dikkat etmemiz lazım. Bu dosyayı da C dizininin altında GitScripts isimli bir klasör oluşturup onun içine atalım. Daha sonra Git Bash içerisinde aşağıdaki komutu çalıştıralım:

git config --global diff.external C:/GitScripts/git-diff-wrapper.sh

Buna alternatif olarak aşağıdaki satırları “C:/Users/(KullanıcıAdınız)” dizini altındaki .gitconfig dosyasına ekleyebilirsiniz. Yukarıdaki komut da zaten .gitconfig dosyasına aşağıdaki satırları eklemektedir.


external = C:/GitScripts/git-diff-wrapper.sh

Bu işlemden sonra Git Bash içerisinde bir diff komutu çalıştırdığımız zaman WinMerge otomatik olarak açılacak ve çok kolay bir biçimde karşılaştırma yapmanızı sağlayacaktır.

Categories: Git Tags: ,
%d blogcu bunu beğendi: