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 Smile

Eğer e-posta başlıklarında UNNAMED project yazıyorsa, deponuzdaki description dosyasını düzenlemeniz gerekmektedir. Unutmayın Wink.
Örnek kullanım: burada.

Leave a comment

Your comment

Click to Insert Smiley

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette