Bir Sürüm Sistemi FTP bir geliştirme ekibi dönüştürme

8 Cevap php

Ben fikir sadece kod yapılması ve listedeki bir sonraki öğeye gitmek olmuştur küçük bir LAMP Development Studio çalışıyorum.

Ekip FTP veya SFTP yoluyla Canlı sunucuya bağlı Zend Studio 5.5 çalışır. Ne onlar bu konuda aşk (onun sadece değiştirerek canlı kodu beri) kodu kendi dağıtım hızıdır.

Ama tabii bu durum çok bariz nedenlerle iyi değildir.

Ben bir sürüm System (CVS, SVN veya başka bir araç) taşımak istiyorum ama yakalamak ben onları bu kullanmaya başlamak için bu yüzden ben bir havuç gerek kendi kıdemli değilim, olduğunu.

Kurulum ne tür onlar her zamanki gibi birlikte kod böylece onların makine üzerine kurmak gerekir?

Ne yapardın benim makinede bu kurulum oluşturmak ve sonra onları göstermek olduğunu.

Ben bu tür sıradışı olduğunu biliyorum ama bu yapı kodu ve zerafet her zamanki hacklemekten düşünme tarzlarını değiştirmek için benim bir tutku haline döndü. Teşekkürler.

GÜNCELLEME (Jonathan Leffler cevap için):

  1. Evet
  2. Hayır
  3. Evet, they really do

Sorusu da, stüdyo sitelerinde yüzlerce barındırılan merkezi CMS sistemi yapar, onlar siteler ana compository veya kendi birinin içinde olmalıdır, siteleri tek tek değiştirmeniz gerekir?

8 Cevap

Sorular:

  1. Eğer (onlar) (onlar) web sitesinin bir önceki sürümüne geri dönmek için ama onlar kırık ediyorum olamazdı çünkü gerekli bir felaket yoktu?

  2. Onlar değişiklikleri test etmek için bir sahneleme web sunucusu kullanıyor musunuz?

  3. Elbette onlar yerde bazı testler olmadan üretim sunucusunda kod değişiklik yok?

Ben "evet (onlar afetler vardı)" ve ikinci "hayır", ve ben üçüncü (but. o sesler için cevabı tahmin etmek tereddüt, cevap, evet "olabilir olduğu ilk cevabını şüpheli onlar gerçekten) "yapmak. Bu doğruysa, ben onların kabadayılık hayran ve bir hata yapmak asla şaşırıyorum. Ben değişiklikleri canlı bir web sitesinde doğrudan yapma riski asla.

Ben kendinizi bir versiyon kontrol sistemi veya VCS (herhangi VCS) kullanarak öneriyoruz. Eğer bakmak kodu için kırışıklıkları çalışmak, ve (muhtemelen hala SFTP kullanarak) kolay web sitesine VCS kod dağıtmak için yapar kaygan dağılımını geliştirmek. Ama aynı zamanda önceki sürümleri koruyarak kendi yararları olduğunu göstermek - ne zaman kimin yaptığını kurtarabilirsiniz çünkü. Ile başlamak için, size sayfanızı değiştirme başlamadan önce başkası beri değiştirilmiş olabilir, çünkü, üzerinde çalışmak ve VCS içine son sürümünü koymak için ne gerekiyorsa sayfa (dosya) güncel sürümünü indirmek gerektiğini bulabilirsiniz Geçen master depoda güncellendi. Ve değişiklikleri takip - Ayrıca güncel sürümlerini almak için dosyaların bir günlük 'sıyrık' yapmak isteyebilirsiniz. Sen 'kim' var, ne de tam olarak 'ne' (en yakın gün ile daha iyi), ne de 'neden', ama sen (kümülatif) olurdu olmazdı değişikliklerin 'ne'.


Söz yorumlarına cevap olarak, Ólafur Waage onlar için bir VCS eksikliği felaketleri yaşadım olduğunu açıkladı.

Bu genellikle hayat çok daha kolay hale getirir. Onlar goofed; onlar goof geri alınamadı - muhtemelen rahatsız müşteriler vardı, ve kendileri ile inanılmaz derecede rahatsız olmalıydı. Bir VCS çok kolay gibi hatalardan kurtarmak için yapar. Açıkçası, herhangi bir özel site için, size VCS mevcut bu sitenin 'doğru' veya 'resmi' sürümü (merkez) yedekleme gerekir. Herhalde dallanma ve birleştirmek için iyi bir destek var bir VCS kullanarak, tüm müşteriler için tek bir depo için gitmek istiyorum. O (insanlar bir VCS kullanarak alışmak ise) ilk başa çıkmak daha zor olacak, ama muhtemelen uzun vadede daha iyi sonuçlar verebilir. Bir sürü insan (bir dağıtılmış VCS olmasa bile) çok SVN kullanmak rağmen ben ciddi, modern dağıtılmış VCS üzerine (örneğin, git) kullanarak düşünecektim.

Eğer daha sonra çalışma yolu oluşturmak ve bazı diğer dosya yolu üzerinde yerel makine üzerinde bir depo ile çalışmak için kaplumbağa svn istemci kullanabilirsiniz ....

belki kurulum deneyin ve kendiniz için kullanabilir ve sizin için neler yapabileceğini bir süre sonra onlara göstermek. Başka serin bir şey bunu yapmak için erişimi ve ayrıcalıkları varsa, sunucu (http://trac.edgewall.org/) trac yükleme, ya da belki kendi geliştirme makinede bazı sanal makinede olabilir. Eğer svn için trac harita ve proje yöneticisi gösterebilir web arayüzünde svn değişiklikleri alabilirsiniz. belki o web arayüzü üzerinden kolayca kod değişiklikleri görmek mümkün olacak bunun için düşecek. Tabii, sadece apache + svn modülü ile yapabilirsiniz, ancak bilet ve (yöneticileri kazmak olabilir kilometre taşları ve malzeme: o) YOL HARİTASI bir yolunu sunuyor bu güzel) ..

iyi şanslar zaten :). Bunu yapmak için sadece bir kazanç var gibi, en azından, yerel makine üzerinde iş için kullanabilirsiniz.

Sen demo için yerel sisteminizde SVN yükleyebilirsiniz. SVN Zend ve Eclipse entegre bazı araçlar vardır. Ben SVN bir demo yapmaya ek olarak, muhtemelen (muhtemelen demo sırasında) getirecek onlara yararlarından bazıları bir sunum vermek gerektiğini düşünüyorum.

Bazı fikirler için bu linke gidin: Do I Really Need Version Control?

Burada herkesin çok seveceği bir hüner:

I include this 'plugin' in most of my production sites: Ofcourse, you need to create a limited-rights robot svn account for this first and svn must be installed on the server.

    echo(' updating from svn<br>' );
    $username = Settings::Load()->Get('svn','username');
    $password = Settings::Load()->Get('svn','password');
    echo(" <pre>" );
    $repos = Settings::Load()->Get('svn' , 'repository');
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force");
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force");

    die();

Make sure you put this behind a .htpasswded site ofcourse, and make sure you do not update the 'production settings' from SVN. Et voila, You update your complete code base with one HTTP query to your site :) SVN overwrites the files automatically, there's no hidden files or folders left behind and its easily adapted to update or revert to a specific version. Now all your team needs to do is commit to their SVN repository, run this piece of code on the testing environment, make sure everything works and then run it on production :)

Ólafur, sen "stüdyo sitelerinde yüzlerce üzerinde barındırılan bir CMS sistemi yapar." Belirtti Bu kendisi ihtiyaç havuç olabilir. Takım genellikle bir versiyon kontrol sistemi içinde dallarını kullanarak sonra, sitelerin bu yüzlerce güncelleştirmelerinin dağıtımını ise herkes için bu süreç çok daha kolay yapabilir. Bu büyük bir zaman tasarrufu olabilir ve böylelikle insanların sürüm kontrol sistemi öğrenmek için bir teşvik sağlayacaktır.

Bu siteler tüm ilgili gibi geliyor - aynı CMS özelleştirilmiş sürümleri. Bu durumda, un-özelleştirilmiş CMS ürüne ek olarak, aynı depodaki tüm sitelerin koymak gerekir. Sonra aynı merkezi ürünün şubeleri olarak hepsini yapılandırabilirsiniz. Eğer ayrı depoları kullanırsanız, ana ürünün özelleştirmeleri ilişkilendirmek dalları oluşturmak kolay yolu yok. (Ben can Subversion ile bunu düşünüyorum, ve büyük olasılıkla diğerleri, ama tüm geliştiriciler aynı organizasyon için çalışmak eğer karmaşık ve gereksiz.)

VisualSVNServer ve TurtoiseSVN ikisi de iyi belgelenmiş ve Windows Explorer ve Visual Studio ile çok iyi entegre, kullandığım iki program vardır.

Otomatik bir 'inşa' sürecinin dağıtım parçası olun yüzden hiçbir geliştirici bu endişe vardır. Kullan 'akışları' bir kalkınma alanı, qa alanda iş tutmak ve serbest alan sonra son gelişme, qa dağıtmak ve ortamlarını serbest süreçlerini otomatik var.

Sadece ortada yani SVN koydu.

The dev team put the new stuff into subversion, and then you have a script that export the stuff from svn and sends it onto the webserver.

This is quite close to the way they work today, but every little change has been recorded in subversion so if lightning strikes it is possible to back everything in time really fast.

/ Johan