svn ihracat kullanarak bir web sitesi yayımlama

5 Cevap php

I (bir slowish adsl bağlantısı üzerinden) bir güncelleştirme yaptığınızda şu anda benim web sitesi için tüm dosyalarını ftp

Ve ben kolay şeyler yapmak istiyorum, bu yüzden sadece son zamanlarda barındırılan svn servisini kullanmaya başladı, ve ben doğrudan benim sunucunuzun üzerine web siteme bir svn ihracat yaparak biraz hızlandırmak düşündüm

ben bir kaç kere ve o iş tamam gibi görünüyor, ancak bir 1 dosya güncelleme için biraz yavaş tüm site her şey almak olmadığını denedi

bu yüzden benim sorular şunlardır

bir ihracat yapmak ve sadece son ihracat beri değişiklikleri almak mümkün (bu nasıl Silinen dosyaları idare edecek?)

OR bir svn ödeme yapmak ve svn bunu yerine svn ihracat her zaman güncellemek için daha kolay olacak ve sadece apache htaccess kullanarak. Svn klasörleri gizler

is this a good idea, or is there a better way to publish my website i am trying to achieve the 1 click deploy type ideal

belki orada ben başka birinin olduğunu düşünmemiştim bazı yakaladım en tükendi

debian / apache / php

5 Cevap

Ben bir svn ödeme yapacağını, ve birkaç yıl için canlı bir sitede bunu başarıyla yaptık. Gerçi 404. Svn dizinleri (ve dosyaları) için mod_rewrite kuralları eklemek gerekir.

Bu benim ana bilgisayarda ne yapıyorum:

Her proje için ben daha az bu gibi görünen bir yapıya sahiptir:

~/projects/myproj
~/public_html/myproj

İkincisi sadece ihracat svn ise ilk dir, SVN bir çıkış olduğunu.

Ben küçük bir bash komut dosyası var

#!/bin/bash
SOURCE="$HOME/projects/"
TARGET="$HOME/public_html/"
for x in `ls $SOURCE`
do
    if [ -d $SOURCE$x ]; then
        svn update $SOURCE$x
        svn export --force $SOURCE$x $TARGET$x
    fi
done

Çok hızlı bu yüzden ihracat çalışan bir kopyası yapılır.

Bu sizin sunucunuza SSH erişiminiz varsa (bu sizin barındırma hizmeti bağlıdır; bazı "düşük maliyet" erişime bu tür vermeyin), aradığınız tam olarak cevap olabilir, ama olmayabilir, sen {kullanabilirsiniz [(0)]} diskinizde ne ile uzak site "senkronize" için.

Geçmişte, ben size (her satır analiz, üretim ve HEAD itti son revizyon arasındaki svn günlüğü getiriliyor ve sonunda sunucuya göndermek için ne hesaplama) açıklayan bir fikir gibi bir şey kullanıyordum; ama gerçekten harika bir süreç değildi; Ben şimdi rsync kullanın ve bu şekilde daha iyi gibi.

(Here too, you will have to exclude .svn directories, btw)

. Sadece (esp genellikle sorun değil bunu yapılandırmak eğer bu erişime izin vermek için değil.) Web sitenize svn dizinleri olan kabul edebilir - bu kolay bir seçenektir. Alternatif olarak, RaYell ne yapar, ve web sunucusu üzerinde web sitenizin iki kopyası vardır. Bir normal web dizini dışındaki çıkış, ve web dizininde bir. Eğer güncelleme yaparken, sadece web dizini içine (. Svn dirs ile sadece bir kopya silindi) svn ihracat (ve web sitenizde kalan itibaren SVN kaldırıldı dosyaları kaçınmak istiyorsanız ilk önce eski dosyaları silmek için emin olmalısınız .)

Ben kopya uzun sürerse bu nedenle kesinti minimize. Svn dizinleri hariç ise svn ödeme ayna ve tek adımda ihracat ve eski dosya silme hem de almak için ayarlanır Robocopy'nin kullanarak, böyle bir şey yapmak. Ben senin barındırma ortamı ise bu, çok UNix kolaydır eminim. Örneğin, yerel bir rsync kullanabilirsiniz: http://blog.gilluminate.com/2006/12/12/yes-you-can-rsync-between-two-local-directories/

Eski bir konu ama bu ben bu eklemek düşündüm benim araştırma sırasında Google geldi budur beri. Ben siteye bir ihracat yapmanın yerine ona göz atmanızı öneririz. Ben depoları tutmak ister ve siteler ayırın. Ben de, her zaman siteye tüm repo ihracat önermiyoruz özel bir seferde sadece bir kaç dosya değişikliği durumunda. Bunun yerine ne yapabilirim başka bir sürümünden nelerin değiştiğini görmek için repo bir diff yapmak ve sadece bu dosyaları ihracat olduğunu. Daha fazla bilgi: http://www.joeyrivera.com/2011/automate-svn-export-to-site-w-bash-script/