(डिस) स्टेजिंग देव के फायदे-> ड्रश rsync 'बनाम' गिट 'का उपयोग कर उत्पादन?


9

मैंने विकास कार्यों के लिए नियंत्रण के तहत एक Drupal साइट की स्थापना की।

यह एक मास्टर, नंगे जीआईटी रेपो में पारंगत है, और जैसा कि मेरे विभिन्न प्रोजेक्ट-वर्क गिट क्लोन में परिवर्तन किए गए हैं, और मास्टर को वापस धकेल दिया गया है, पोस्ट-अपडेट हुक तुरंत एकल लाइव स्टेजिंग वेबसाइट में परिवर्तन को धक्का देता है (http: / /staging.loc।)। कुछ खास नहीं, उम्मीद के मुताबिक काम करता है।

मैंने "@STAGING" साइट को भी ड्रश-अलियास कर दिया है। उत्पीड़न पर, मैं स्टेजिंग साइट से उत्पादन सर्वर में अपने परिवर्तनों को बढ़ावा देना चाहता हूं।

दो अपेक्षाकृत सरल तरीके दिमाग में आते हैं:

(1) एक समय में जब स्टेजिंग साइट स्थिर दिखाई देती है, तो मास्टर रेपो से गिट चेकआउट के रूप में प्रोडक्शन साइट बनाएं,

(2) मंचन स्थल से उत्पादन स्थल तक drush rsync+ का उपयोग करें drush sql-sync

दोनों को काम करने के लिए बनाया जा सकता है। इस तथ्य के अलावा कि (2) स्वभाव से अधिक Drupal-केंद्रित / जागरूक लगता है - ड्रश, आखिर, एक Drupal- विशिष्ट उपकरण का सेट है - दो दृष्टिकोणों के सापेक्ष गुण क्या हैं?

क्या कोई विशेष कारण है जिस पर मुझे (१) ओवर (२) विचार करना चाहिए?

या तो मामले में "सब कुछ" संशोधन नियंत्रण के कम से कम एक उदाहरण के तहत है ...

जवाबों:


3

मैंने दोनों तकनीकों का इस्तेमाल किया है। दोनों का उपयोग यह गारंटी देने के लिए किया जा सकता है कि वही फ़ाइलें जो आप @stage पर परीक्षण करते हैं वे @live पर समाप्त होती हैं। Rsync का लाभ यह है कि आप अपने उत्पादन सर्वर पर अतिरिक्त फ़ाइलों (जैसे ".गित" और संबद्ध) के साथ समाप्त नहीं होते हैं। मैं vps के लिए rsync करता हूं, और एक बॉक्स पर git का उपयोग करता हूं जो मेरे पास है (जैसे इंट्रानेट साइट्स)।


Thanks for the point. I was just looking at the exclusion options. That helps keep things clean. Iiuc, I need to specify what to exclude with "rsync' => array ('exclude-paths' => '.git:.DS_Store:.gitignore:.gitmodules:'," in the .rc file, though I'm not yet sure if I need that in both the source and target alias' specifcations or just one or the other.

.git should be ignored by default. Run 'drush --simulate rsync [options] @a @b' to see the exact rsync command that Drush will run. Use --include-vcs if you want drush rsync to include .git and other vcs related files.
greg_1_anderson

I need to read up in more detail; I didn't realize that .git was excluded. Thanks for the simulate hint too. Re: the OP, I think I'll stick with the 'drush rsync' as it's designed to be a deploy method for drupal & works. git can work of course but Ive now come across enough comments that it's notdesigned for deploy ...

1

The problem with using drush rsync is that if you have multiple people pushing changes to the server.

Your example only shows one person pushing changes.

If you have developer A pushing her changes and then developer B pushing his changes you want git to mop up the conflicts, or make developer B mop up the conflicts.


1

I actually use both. svn/git and rsync serve two different purposes. svn/git is for source control, rsync and sql-sync is for syncing staging and prod efficiently. drush rsync @staging @prod is very hard to beat in terms of simplicity, and is dreadfully easy to integrate in most any continuous Integration environnment should you want to dive even deeper in code quality craziness/methodologies.


1

Personally I use Git for version control, deployment and syncing various server codebases and then rsync to move/sync users files (ignored by adding certain paths to the .gitignore file).

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.