Taşıma Kılavuzu

Genel Bakış

gityar, GitHub, GitLab, Gogs, Gitea ve URL üzerinden herhangi bir Git deposundan depo taşımayı destekler.

Taşıma Yöntemleri

1. Web Arayüzü ile Taşıma

Adımlar

  1. "+""Yeni Taşıma" tıklayın
  2. Kaynağı seçin:
    • GitHub
    • GitLab
    • Gogs
    • Gitea
    • Diğer Git Deposu
  3. Depo URL'sini girin:
    • GitHub: https://github.com/user/repo.git
    • GitLab: https://gitlab.com/user/repo.git
    • Diğer: Herhangi bir Git URL'si
  4. Kimlik doğrulama (gerekirse):
    • Kullanıcı Adı/Şifre
    • Erişim Belirteci
  5. Taşımayı yapılandırın:
    • Depo Adı: Adı geçersiz kıl (isteğe bağlı)
    • Açıklama: Açıklamayı geçersiz kıl (isteğe bağlı)
    • Özel: Görünürlüğü ayarla
    • Yansıtma: Yansıma deposu oluştur
  6. "Depoyu Taşı" tıklayın

2. Komut Satırı ile Taşıma

Kaynaktan Klonlama

git clone --mirror https://source-git.com/user/repo.git
cd repo.git

gityar'a Push

git push --mirror http://localhost:3000/user/repo.git

Ne Taşınır

Tam Taşıma

  • ✅ Tüm commit'ler ve branch'ler
  • ✅ Tüm tag'ler
  • ✅ Depo dosyaları
  • ✅ Commit geçmişi
  • ✅ Katkıda bulunanlar

İsteğe Bağlı (kaynak destekliyorsa)

  • ⚠️ Sorunlar
  • ⚠️ Çekme istekleri / Merge request'ler
  • ⚠️ Etiketler
  • ⚠️ Kilometre taşları
  • ⚠️ Wiki sayfaları
  • ⚠️ Sürümler

GitHub'dan Taşıma

Kişisel Erişim Belirteci Kullanma

  1. GitHub'da belirteç oluşturun:
    • SettingsDeveloper settingsPersonal access tokens gidin
    • repo scope'u ile belirteç oluşturun
  2. gityar taşımasında:
    • URL: https://github.com/user/repo
    • Kimlik doğrulama: Belirteci şifre olarak kullanın

GitHub Enterprise

https://github-enterprise.example.com/user/repo

GitLab'dan Taşıma

Kişisel Erişim Belirteci Kullanma

  1. GitLab'da belirteç oluşturun:
    • User SettingsAccess Tokens gidin
    • read_api ve read_repository scope'ları ile belirteç oluşturun
  2. gityar taşımasında:
    • URL: https://gitlab.com/user/repo
    • Kimlik doğrulama: Belirteci şifre olarak kullanın

GitLab Self-Hosted

https://gitlab.your-company.com/user/repo

Gogs/Gitea'dan Taşıma

GitLab taşımasına benzer:

https://gogs.example.com/user/repo.git
https://gitea.example.com/user/repo.git

Büyük Depoları Taşıma

Limitleri Artırma

app.ini içinde:

[repository]
MAX_CREATION_LIMIT = -1  # Sınırsız

[migrations]
MAX_ATTEMPTS = 3
MAX_REQUEST_SIZE = 104857600  # 100MB

Yansıma Taşıma Kullanma

Büyük depolar için:

  1. Yansıma deposu oluşturun
  2. Senkronizasyon arka planda gerçekleşir
  3. İlerlemeyi depo ayarlarında izleyin

Komut Satırı Alternatifi

Çok büyük depolar için komut satırını kullanın:

# Sığ geçmişle klonlayın
git clone --depth 100 --mirror https://source.com/repo.git
cd repo.git

# gityar'a push
git push --mirror http://localhost:3000/repo.git

Taşıma Sonrası Görevler

Remote URL'lerini Güncelleme

git remote set-url origin http://localhost:3000/user/repo.git
git push -u origin --all
git push -u origin --tags

Taşımayı Doğrulama

  • Tüm branch'lerin mevcut olduğunu kontrol edin
  • Tag'lerin var olduğunu doğrulayın
  • Commit geçmişini gözden geçirin
  • Depo klonlamayı test edin
  • Dosya içeriklerini kontrol edin
  • Sorunları gözden geçirin (taşındıysa)
  • Wiki'yi doğrulayın (taşındıysa)

Depoyu Yapılandırma

  1. Depo ayarlarını güncelleyin
  2. İşbirlikçileri ekleyin
  3. Web kancalarını yapılandırın
  4. Branch koruması ayarlayın
  5. Özellikleri etkinleştirin/devre dışı bırakın

Sorun Giderme

Yaygın Sorunlar

Kimlik Doğrulama Başarısız:

  • Kimlik bilgilerini doğrulayın
  • Belirteç izinlerini kontrol edin
  • URL'nin doğru olduğundan emin olun

Depo Bulunamadı:

  • Deponun var olduğunu kontrol edin
  • Erişiminiz olduğunu doğrulayın
  • URL formatını onaylayın

Taşıma Zaman Aşımı:

  • app.ini içinde zaman aşımını artırın
  • Yansıma taşıma kullanın
  • Komut satırı yöntemini deneyin

Eksik Taşıma:

  • Hatalar için logları kontrol edin
  • Kaynak depoyu doğrulayın
  • Taşımayı yeniden deneyin

Büyük Dosyalar Eksik:

  • Kaynakta Git LFS yükleyin
  • gityar'da LFS'yi etkinleştirin
  • git lfs migrate kullanın

Taşıma Loglarını Kontrol Etme

Logları şurada görüntüleyin:

log/gityar.log

Taşıma ile ilgili hataları arayın.

Yansıtma (Mirroring)

Yansıma Oluşturma

Taşıma sırasında "Yansıma" seçeneğini belirleyin.

Yansıma Depo Özellikleri

  • Kaynaktan tek yönlü senkronizasyon
  • Otomatik güncellemeler
  • gityar'da salt okunur
  • Kaynaktan sadece çekme

Yansımayı Güncelleme

Manuel Güncelleme:

  1. Depo Ayarları gidin
  2. "Senkronize Et" düğmesine tıklayın

Otomatik Senkronizasyon:

app.ini içinde yapılandırın:

[repository]
PULL_REQUEST_COMMITS = true
DISABLED_REPO_UNITS = 

Yansımayı Normal Depoya Dönüştürme

  1. Depo Ayarları gidin
  2. Yansıtma özelliğini devre dışı bırakın
  3. Depo tam düzenlenebilir hale gelir

En İyi Uygulamalar

Taşıma Öncesi

  • ✅ Kaynak depoyu yedekleyin
  • ✅ Erişim kimlik bilgilerini doğrulayın
  • ✅ Depo boyutunu kontrol edin
  • ✅ Neyin taşınacağını gözden geçirin
  • ✅ Takım üyelerini bilgilendirin

Taşıma Sırasında

  • ✅ Taşıma ilerlemesini izleyin
  • ✅ Hatalar için logları kontrol edin
  • ✅ Doğrulanana kadar kaynağı silmeyin
  • ✅ Taşıma sonrası klonlamayı test edin

Taşıma Sonrası

  • ✅ Tüm verilerin taşındığını doğrulayın
  • ✅ Belgeleri güncelleyin
  • ✅ CI/CD pipeline'larını güncelleyin
  • ✅ Takım için remote URL'lerini güncelleyin
  • ✅ Eski depoyu arşivleyin veya yönlendirin

Sonraki Adımlar