git gel nereye kadar
Aslında yazıya doğrudan teslimatları e-posta ile nasıl alırız diye başlayacaktım, lakin önce bir depo oluşturalım dedim. Depo oluşturmak için ben yine daha önceki yazımdaki gibi fonksiyon oluşturmayı tercih ediyorum.
newgit()
{
if [ -z $1 ]; then
echo "usage: $FUNCNAME project-name.git"
else
gitdir="/home/$USER/git/$1"
mkdir $gitdir
pushd $gitdir
git --bare init
git --bare update-server-info
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update
touch git-daemon-export-ok
popd
fi
}
Böylelikle newgit depoismi şeklinde depo oluşturmak mümkün oluyor. Daha spesifik işlemler(ACL vs.) için, gitosis kullanmanız gerekebilir.
Neyse gelelim her teslimatın belirttiğimiz e-posta listesine veya kullanıcıya gönderilmesi için ne yapılabilir. Git kurulumunda öntanımlı olarak bu teslimatları e-posta ile gönderen “hook”, “hooks” dizini yerine git paketi ile birlikte gelen doc klasöründe bulunur. Arch Linux’da doc dizinleri silindiği için buradan gerekli “hook”a ulaşabilirsiniz. Farklı bir dağıtımda doc dizini silinmediyse, “/usr/share/doc/git-core/contrib/hooks/post-receive-email” dosyasını ister hooks/post-receive dosyasına sembolik bağ ile bağlayabilir, isterseniz doğrudan dosyayı kopyalayabilirsiniz. Tabii her iki durumda da dosyayı çalıştırılabilir yapmayı unutmamak kaydıyla.
ln -s /usr/share/doc/git-core/contrib/hooks/post-receive-email $PATH_TO_GIT_REPO/hooks/post-receive
Ardından, depo içerisindeki config dosyasına şu satırları ekleyin:
[hooks] mailinglist = dev-commits@archlinuxtr.org announcelist = envelopesender = commitbot@archlinuxtr.org emailprefix = [projects]
Arif olan zaten bu satırların anlamını bilir, açıklama gerek yok 
Eğer e-posta başlıklarında UNNAMED project yazıyorsa, deponuzdaki description dosyasını düzenlemeniz gerekmektedir. Unutmayın
.
Örnek kullanım: burada.