(dis) 'drush rsync' vs 'git' kullanarak geliştirme aşamasının avantajları?


9

Geliştirme çalışmaları için git kontrolü altında bir Drupal sitesi kurdum.

Bir master, çıplak GIT repo'sunda parent ve çeşitli proje çalışmaları git klonlarımda değişiklikler yapıldıkça ve master'a geri itildikçe, bir güncelleme sonrası kancası değişiklikleri hemen tek bir canlı Evreleme web sitesine iter (http: / /staging.loc.). Özel bir şey yok, beklendiği gibi çalışıyor.

Ayrıca siteyi "@STAGING" olarak düzelttim. Belirli zamanlarda, Staging sitesinden bir üretim sunucusuna yaptığım değişiklikleri tanıtmak istiyorum.

İki nispeten basit yöntem akla geliyor:

(1) Evreleme alanının kararlı göründüğü bir noktada, Üretim sitesini ana depodan bir git ödemesi olarak oluşturun,

(2) evreleme sahasından üretim yerine drush rsync+ kullanın drush sql-sync.

Her ikisi de işe yarayabilir. (2) Doğa tarafından daha fazla Drupal merkezli / bilinçli göründüğü gerçeğinden başka - drush, her şeyden önce, Drupal'a özgü bir araç setidir - iki yaklaşımın göreceli değerleri nelerdir?

(1) 'i (2)' den fazla düşünmem gereken özel bir sebep var mı?

Her iki durumda da "Her şey" en az bir revizyon kontrolü örneğinde ...

Yanıtlar:


3

Her iki tekniği de kullandım. Her ikisi de, sahnede test ettiğiniz dosyaların @ yaşamakta olduğunu garanti etmek için kullanılabilir. Rsync'in avantajı, üretim sunucunuzda fazladan dosya (örneğin ".git" ve ilişkili) bulunmamasıdır. Ben bir vps rsync eğilimindedir ve sahip olduğum bir kutu (örneğin intranet siteleri) git kullanın.


Konu için teşekkürler. Sadece hariç tutma seçeneklerine bakıyordum. Bu işleri temiz tutmaya yardımcı olur. Iiuc, "rsync' => array ('exclude-paths' => '.git:.DS_Store:.gitignore:.gitmodules:',".rc dosyasında neyi hariç tutacağımı belirtmem gerekiyor , ancak kaynak ve hedef diğer adlarının belirtimlerinde veya yalnızca bir veya diğerinde buna ihtiyacım olup olmadığından henüz emin değilim.

.git varsayılan olarak yok sayılmalıdır. Drush'ın çalışacağı kesin rsync komutunu görmek için 'drush --simulate rsync [options] @a @b' komutunu çalıştırın. Drush rsync dosyasının .git ve diğer vcs ile ilgili dosyaları içermesini istiyorsanız --include-vcs komutunu kullanın.
greg_1_anderson

Daha ayrıntılı olarak okumalıyım; .Git'in hariç tutulduğunun farkında değildim. Benzetme ipucu için de teşekkürler. Re: OP, drupal & works için bir dağıtım yöntemi olarak tasarlanmış 'drush rsync' ile sopa olacak düşünüyorum. git elbette çalışabilir ama şimdi konuşlandırılması için tasarlanmamış yeterli yorum rastlamak ...

1

Drush rsync kullanarak sorun sunucuda değişiklikleri iterek birden fazla kişi var olmasıdır.

Örneğiniz sadece değişiklikleri iten bir kişiyi gösterir.

Geliştiricinin A değişikliklerini zorladığını ve sonra geliştirici B'nin değişikliklerini zorladığını düşünüyorsanız, çatışmaları paspaslamak veya geliştirici B'yi çatışmaları paspaslamak istersiniz.


1

Aslında ikisini de kullanıyorum. svn / git ve rsync iki farklı amaca hizmet eder. svn / git kaynak kontrolü içindir rsyncve sql-syncevrelemeyi ve ürünü verimli bir şekilde senkronize eder. drush rsync @staging @prodbasitlik açısından yenmek çok zordur ve continuous Integrationkod kalitesi deliliği / metodolojisinde daha da derinlere dalmak isterseniz, herhangi bir ortama entegre etmek son derece kolaydır .


1

Şahsen Git'i sürüm kontrolü, dağıtımı ve çeşitli sunucu kod tabanlarını senkronize etmek için kullanıyorum ve daha sonra kullanıcı dosyalarını (.gitignore dosyasına belirli yollar ekleyerek yok sayılıyor) taşımak / senkronize etmek için rsync kullanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.