Git deposuna dosya eklemeyi unutmamak için…

Son zamanlarda django-south ile çalışmaya başladığımdan beri, sık sık depoya gönderilecek dosyalar arasında depoya eklenmemeiş dosyaları eklemeyi unutur oldum. Daha doğrusu gözden kaçırıyorum ister istemez. Çünkü oluşturulan dosyalar alt klasörde duruyor ve o klasörler ise kapalı. Yani içindeki dosyalar listelenmiyor pencerede. Doğal olarak kırmızı renkteki dosyaları sağ tıklayıp eklemeyi unutuyorum. Sonunda bu duruma bir dur demem gerekti ve araştırdım ettim, bir yol buldum.

Bulduğum yol git’in muhteşem hook’larından pre-commit kullanmak oldu. proje dizinindeki .git klasörü altında bulunan hooks klasöründeki örnek birkaç hook dosyasında biri olan pre-commit.sample dosyasının adını pre-commit olarak değiştirdiğimiz zaman, git otomatik olarak bu dosyadaki kuralları işletmeye başlıyor. Bu dosyanın amacı “commit”ten önce gerekli kontrolleri yapmayı sağlamak. Ben de o yüzden aşağıdaki shell script satırlarını bu dosyaya ekledim ve projede git’e eklenememiş dosya varsa hata verip çıkmasını sağladım:

 

# Git’e eklenmemiş yeni dosyalar var mı kontrol ediyoruz.
ud=`git status -u | grep ‘^Untracked files:$’`

if [ -n “$ud” ];
then
cat <<\EOF
Dikkat: Git’e eklenmemiş dosyalar mevcut. Commit durduruldu.
EOF
exit 1
fi

Artık pycharm’da git commit esnasında eğer eklemeyi unuttuğum dosya varsa bana uyarı veriyor ve commit işlemini durduruyor.

 

Etiketler: