GitLab'dan AngusGit'e geçiş: adım adım kontrol listesi
GitLab'dan AngusGit'e geçişi güvenli yapmak için beş aşamalı bir plan izlemen gerekiyor: hazırlık, ilk senkronizasyon, çift çalıştırma, geçiş günü ve geri dönüş. Tüm süreçte hiçbir commit kaybetmemek ve sorun çıkarsa GitLab'a dönebilmek için iki haftalık bir arşiv penceresi açık tutacaksın.
İlk olarak AngusGit'te takım ve depo yapısını kur. GitLab yollarını AngusGit'in iki seviyeli yapısına uyarla: `platform/backend/order-service` yerine `platform/backend-order-service` yaz. Nokta işaretlerini tire ile değiştir (`docs.site` `docs-site`). Ayarlar Takım bölümünden yeni takım oluştur, takım kimliğini GitLab grup adıyla eşleştir. Depo oluştururken README,.gitignore ve lisans seçeneklerini işaretleme; aksi halde push reddedilir.
Erişim jetonları iki ayrı amaç için oluştur. Senkronizasyon betiği için `git:write` ve WRITE izni olan bir jeton, Jenkins gibi salt okunur işlemler için `git:read` ve READ izni olan başka bir jeton kullan. Kullanıcı adı olarak AngusGit giriş adını, şifre olarak jetonu gir. Bir depoyu elle başarıyla push ettikten sonra sistem kimlik bilgileri penceresinde kaydet, sonra betikleri çalıştır.
Depo eşlemesini `repos.txt` dosyasına yaz; her satırda GitLab yolu ve AngusGit hedefi olsun. Ardından bu betiği çalıştır:
1while read -r src dst; do2git clone --bare "https://gitlab.example.com/${src}.git" tmp.git || continue3git -C tmp.git branch -m master main 2>/dev/null4git -C tmp.git push "https://git.anguskit.com/${dst}.git" --all5git -C tmp.git push "https://git.anguskit.com/${dst}.git" --tags6rm -rf tmp.git7done < repos.txtHer depo için karşılaştırma yap; beklenmedik çıktı yoksa senkronizasyon başarılı. Çift çalıştırma döneminde GitLab ve AngusGit'e paralel push yap, her ikisinin de güncel kaldığını doğrula. Geçiş gününde takımı AngusGit'e yönlendir, GitLab'ı iki hafta arşiv modunda tut, hiç silme, sadece geri dönüş için beklet. Sorun çıkarsa bu pencerede GitLab'a geri dön.
Detaylı adım adım kılavuz için kaynağı oku.
0 yorum