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..