Bu kabul edilmiş bir yanıtı olan eski bir soru olsa da, yine de başka bir soruya yer olduğuna inanıyorum.
İlk olarak, Özellikler'in bu görev için doğru araç olduğunu düşünmediğimi ve alternatif bir araç seti önereceğimi söyleyeyim .
Ekip işbirliği için bir ön koşul, projenin üretim sunucunuzdan ayrı geliştirme sürümlerini test etmek için bir hazırlama sunucusuna sahip olmaktır. Tüm tahsis kodu hazırlama sunucusunda test edilir ve üretim sunucusuna yalnızca kararlı ve devreye alınmaya hazır olduğunda gönderilir. Ancak, geliştiriciler doğrudan hazırlama sunucusunda çalışmaz. Her geliştirici, çalışmalarını ekibin geri kalanıyla koordine etmek için bir revizyon kontrolü ve kaynak kodu yönetimi (SCM) kullanarak kendi iş istasyonunda çalışır.
SCM sistemi, ekip üyelerinin birbirlerini etkilemeden kodun farklı dallarında paralel olarak çalışmalarına izin verir . Test amacıyla, hazırlama sunucusuna yalnızca ana dal dağıtılır.
Veritabanını üretim, aşamalandırma ve iş istasyonları arasında yansıtmak için , paylaşımlı barındırma kullanıyorsanız ve kendi veritabanınızı yönetmiyorsanız kullanılabilecek Yedekleme ve taşıma adında bir modül vardır . Kendi veritabanı sunucunuzu yönetiyorsanız, bu sunucudaki tek proje budur ve mysql kullanıyorsanız , aşağıdaki komut çifti kullanışlıdır:
Boşaltmak için:
mysqldump --all-databases --opt -u root -p > DUMP.sql
Yenilemek:
mysql -u root -p < DUMP.sql
Sizinkiniz bu sunucudaki tek veritabanı değilse, yalnızca veritabanlarınızı döken bazı sürümlerini mysqldump
(veya mysql kullanmıyorsanız eşdeğer) komut dosyası oluşturun .
Ana olan üretim sunucusundaki veritabanı ilkesini belirleyin. Hazırlama sunucusu ve iş istasyonları, tam tersi değil, üretim veritabanının bir kopyası olmalıdır.
Drupal 7'nin tüm yönetici ayarlarını veritabanında tuttuğunu unutmayın. Bu, veritabanını üretim sitesi, hazırlama sitesi ve iş istasyonları arasında yansıtmanın, yönetici ayarlarını Özellikler olmadan geçireceği anlamına gelir .
Şimdi, kodu paylaşmak için:
Bir geliştirme ekibinin üyeleri arasında kod paylaşmanın standart yolu SCM sistemini kullanmaktır. Drupal varsayılan olarak git adlı böyle bir sistemle yönetilir .
Git , yerel veya uzak depoların kullanımına izin verir. Ekip üyeleri aynı fiziksel alanda bulunuyorsa, hazırlama sunucunuzda yerel bir depo oluşturabilirsiniz. Coğrafi olarak yayılmışlarsa, uzak bir depozito ayarlayabilirsiniz. Geliştirilmekte olan kodunuzda başkalarının okuma erişimine sahip olduğunu düşünmezseniz, uzak depo olarak Drupal.org'daki bir korumalı alanı kullanabilirsiniz . GitHub'daki bir proje alanını da kullanabilirsiniz . GitHub sadece bir depo değil, aynı zamanda işbirliği için bazı araçlar ile birlikte gelir ve hem genel hem de özel depolara izin verir.
Temel olarak, bir SCM sistemi, ekip üyelerinin, ekip üyeleri tarafından paylaşılan depodan kaynak kodu ve belgeleri almasına ve üzerinde çalıştıktan sonra tekrar içeri itmesine izin verir. SCM değişiklikleri takip eder ve bir çatışma varsa (örneğin, başka bir ekip üyesinin taahhüt ettiği değişiklikleri içermeyen bir kod zorlamaya çalışırsa), size söyleyecek ve bu çatışmayı çözmenin bir yolunu önerecektir.
Genellikle, görevlerin ekip üyeleri arasında nasıl bölündüğü ile ilgili bazı samimi iletişimde, çatışma olmayacaktır. Ancak SCM sistemi olayları takip ederken, hatalar yapılsa veya iletişim başarısız olsa bile çatışmalar yönetilebilir hale gelir.
Git (GIYF) kullanmaya başlama ve kullanma konusunda birçok öğretici var . İki tavsiye edeceğim: git-scm web sitesi ve Pro Git by Scott Chacon.