Capistrano 2 ve 3 İçin Git Remote Url’in Değiştirilmesi Sonucu Oluşan Hata Çözümleri

Merhabalar,

Daha önceden Ruby on Rails uygulamarının sunuculara deploy edilmesi konusunda bir yazı yayınlamıştım. Bu günlerde git remote repolarımızı Github’dan Bitbucket’a taşınması ile ilgili kararlar aldık.

Fakat git remote repolarını Bitbucket’a taşımak demek, deploy süreçlerinde capistrano 2 veya 3 kullanılan projelerde de

 set :repo_url, 'git@github.com:your_username/your_repo_name.git'

ayarı ile belirttiğimiz repo url’i güncellemek anlamına geliyor.

Başlangıçta basit bir işlem gibi görünsede sunucu tarafında bu bilgilerin cache’lenmesi sonucu yeni remote reponuzda olan kodlar proje config dizininizde ayarları değiştirseniz dahi  yeni remote url yerine sunucu tarafında eski remote url’i kullanmaya devam ediyor.

Logları incelediğinizde ise capistrano size yeni remote url’i kullanarak repodan kodları çektiğini söylüyor ama gerçekte olan ise cache’lenmiş bilgileri kullanıyor.

Bu hatayı farketmenizde, sistem de görsel bir değişiklik yapmadıysanız kolay olmayacaktır.

Gelelim çözümlere;

  • Capistrano 2 için sunucu tarafında proje dizininiz de yer alan shared/cached-copy dizinini silmeniz yeterlidir.
  • Capistrano 3 için ise sunucu tarafında proje dizinizde yer alan repo/config dosyasının içindeki url kısmını yeni remote url ile değiştirmeniz yeterlidir.
[core]
    repositoryformatversion = 0
    filemode = true
    bare = true
[remote "origin"]
    fetch = +refs/*:refs/*
    mirror = true
    url = git@github.com:your_username/your_repo_name.git

İyi çalışmalar..

Leave a Reply

Your email address will not be published. Required fields are marked *