CodeBlanks Logo Icon CodeBlanks

update

update hook ile dal bazlı denetim öğrenirsin.

update hook nedir?

`update` hook'u, sunucu tarafında her referans güncellemesi için ayrı ayrı çalıştırılır. Betik, güncellenen referans adını ve eski-yeni nesne kimliklerini argüman olarak alır. Böylece farklı dallar için ayrı kurallar uygulanabilir.
#!/bin/bash
refname="$1"
echo "$refname"

Argümanlarla dal denetimi

`update` hook'una ilk argüman olarak referans adı, ikinci argüman olarak eski nesne kimliği, üçüncü argüman olarak yeni nesne kimliği verilir. Referans adı `refs/heads/` ile başlayan dalları tanımlar. Betik, kurala uymayan güncellemeyi sıfırdan farklı çıkış koduyla reddedebilir.
refname="$1"
if [[ "$refname" == "refs/heads/main" ]]; then
  exit 1
fi

Uygulama Ana dal güncellemesini reddet

Bir `update` hook betiği oluştur. İlk argümandaki referans adını `refname` değişkenine ata. Referans `refs/heads/main` ise hata mesajı yazdırıp çıkış kodu 1 ile bitir. Diğer dallarda güncellemeye izin ver.

Başlangıç kodu

terminal
# Referans adını al
# Dalı denetle

Örnek çözüm

terminal
#!/bin/bash
refname="$1"
if [[ "$refname" == "refs/heads/main" ]]; then
  echo "Ana dal güncellemesi yasak" >&2
  exit 1
fi
echo "Güncellemeye izin verildi"

Beklenen çıktı

Güncellemeye izin verildi

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 update hook'un pre-receive hook'tan temel farkı nedir?

  • Push işlemi bittikten sonra çalışması
  • Yalnızca yerel bilgisayarda çalışması
  • Her referans güncellemesi için ayrı çalışması Doğru cevap
  • Sadece dosya adlarını kontrol etmesi

Açıklama: `update`, her referans güncellemesini ayrı değerlendirir. Bu özellik dal bazlı kurallar yazmayı kolaylaştırır.

2 update hook argümanını al

Soru
#!/bin/bash
refname="$_____"____
Cevap
#!/bin/bash
refname="$_____"1

Açıklama: İlk argüman `$1` ile alınır ve update hook'unda referans adını içerir.

3 update hook argümanlarını eşleştir

Kavram Anlamı
$1 Referans adı
$2 Eski nesne kimliği
$3 Yeni nesne kimliği
exit 1 Güncellemeyi reddeder

Uzman bölümündeki tüm dersler