كيف يمكنني استخدام SCM مع تطبيق PHP مثل Wordpress؟

StackOverflow https://stackoverflow.com/questions/118235

  •  02-07-2019
  •  | 
  •  

سؤال

أقوم بتشغيل مدونتي باستخدام Wordpress وأصبحت مؤخرًا مدونتي كبير مؤمن بـ SCM.أريد حقًا أن أضع موقعي في حالة تخريب (وهذا ما أستخدمه الآن، وربما يأتي git لاحقًا) ولكن لا يمكنني التفكير في الطريقة الصحيحة للقيام بذلك حتى الآن.في الأساس، تم إعداد المستودع الخاص بي حاليًا بدليل "التنفيذ" ودليل "الموارد"، مع الاحتفاظ بالتنفيذ لما سيتم نشره في النهاية على الموقع المباشر.أريد أن أتمكن من معاينة موقعي محليًا دون الحاجة إلى التحميل على الخادم لأسباب واضحة.ومع ذلك، للقيام بذلك وجدت أنني بحاجة إلى تثبيت Wordpress محليًا (وليس فقط نسخ الموقع البعيد إلى الصندوق المحلي الخاص بي).قيل لي هذا في Wordpress.org.

يؤدي هذا إلى ظهور مشكلة القدرة على استخدام SCM مع التثبيت لأنني أحتاج إلى ترقية موقعي المحلي بين الحين والآخر ولكن هذا يولد تناقضات مع التخريب لأنه لا يمكنه تتبع ما يحدث لأن النظام الخارجي يعبث بمستودعه بناء.هذا لن ينجح.

ميولي الأولي هو محاولة SCM فقط لمعلومات الموضوع الخاص بي لأن هذه هي الأشياء الوحيدة التي "أمتلكها" بينما كل شيء آخر هو في الحقيقة مجرد جزء من النظام الأساسي الخاص بي (لا يختلف عن Apache أو PHP، حقًا).ومع ذلك، هذا هو المكان الذي ينهار فيه فهمي.كيف يمكنني اختيار SCM بشكل انتقائي لجزء فقط من بنية الدليل، وكيف يمكنني الحفاظ على تكوين Wordpress الذي أستخدمه؟

على أي حال، أنا متأكد من أن أشخاصًا آخرين قد عالجوا هذا الأمر وربما يكون الحل قابلاً للتطبيق على العديد من التطبيقات المشابهة لـ Wordpress (Drupal، phpBB، phpMyAdmin، وما إلى ذلك).فكيف يمكنك أن تفعل ذلك؟

هل كانت مفيدة؟

المحلول

في الواقع، ليس من الصعب القيام بذلك، لكنني سأقسمه إلى بعض الاقتراحات هنا.ما تصفه هو أكثر أو أقل دليل "إسقاط البائع".هذا هو المكان الذي تحتفظ فيه بالكود في SVN، ولكن تستبدل المحتويات بالأشياء الأحدث عند ظهورها.

ما يجب أن تبدأ به هو دليل فارغ.قم بإعداد مستودع SVN، ثم قم بإجراء فحص SVN في الدليل الفارغ (سيظل فارغًا، باستثناء أنه سيتم إضافة دليل .svn مخفي).بعد ذلك، قم بتثبيت WordPress هنا بشكل طبيعي، ثم قم بإضافة ملفاته إلى svn.ربما يمكنك فقط "svn add *" ولكن كن حذرًا، وقم بإزالة أي شيء لا تريد إصداره (أدلة التحميل/المؤقت/ذاكرة التخزين المؤقت، إن أمكن).يمكنك أيضًا استخدام الخاصية svn:ignore لإخبارها بتجاهل أدلة أو أنواع ملفات معينة، إذا كنت ترغب في ذلك.قم بتشغيل "svn stat" ليُظهر لك ما سيتم تسجيله، وما إلى ذلك، وبمجرد أن يصبح كل شيء على ما يرام، قم بتنفيذه (التزام svn) وابدأ العمل من هناك.الآن لديك تثبيت أساسي لـ WordPress في SVN.

أثناء عملك وإجراء التغييرات، التزم بها.

عندما يحين وقت الترقية، ما عليك سوى استبدال WordPress بما لديك.تأكد عند استبدال الدلائل، من استبدال المحتويات، وليس الدليل بأكمله نفسه.لا تريد أن تفقد المجلد .svn المخفي في كل مجلد لأن هذا هو ما سيؤدي إلى إفساد عملية التخريب.قم بإجراء إحصائيات svn و/أو svn diff لمعرفة ما تم تغييره، إن وجد، ومعظم ما تمت إضافته حديثًا.في هذه المرحلة، يمكنك الالتزام مرة أخرى.

للنشر على موقع الإنتاج الخاص بك، يمكنك إجراء تصدير svn، أو إجراء فحص منتظم في دليل الويب.إذا قمت بالخروج، فتأكد من التحديث فقط عندما تكون جاهزًا للنشر.

نصائح أخرى

هذه هي الطريقة التي أختبرها.يستغرق الإعداد بعض الوقت، لكن يجب أن يكون لديك (نظريًا) تثبيتًا مستقبليًا:

تثبيت ووردبريس بالطريقة الصحيحة

انظر أيضًا إلى svn:externals لسحب تحديثات البرنامج المساعد:

استخدم svn:externals لتثبيت مكونات WordPress الإضافية

أعتقد أن جزء الترقية يمكن أن يكون أسهل قليلاً من ذلك؛أفعل ذلك باستخدام الإصدار الأحدث من الإصدارين 2.5 و2.6، بالإضافة إلى المراجعة المتطورة لصندوق WP.

نظرًا لأن Wordpress يقدم جميع عناصره كمستودعات تخريبية، فإن الحصول على المراجعة الحالية للعلامة الثابتة يعد أمرًا سهلاً مثل إنشاء دليل المدونة ثم

# svn co http://svn.automattic.com/wordpress/tags/2.6.2/ (replace the current rev here for the first check out).

عندما تكون الترقية متاحة، ما عليك سوى الانتقال إلى دليل مدونتك وتشغيلها

#svn sw http://svn.automattic.com/wordpress/tags/2.6.3/ (or whatever wordpress rev you're updating to)

ومن ثم فإن الإصدار إلى موقع الإنتاج الخاص بك يعد مجرد تصدير، كما هو الحال يذكر جريجماكومع ذلك، لا أعتقد أن هذا يجيب على سؤالك الفعلي، والذي أفسره على أنه "كيف يمكنني الاحتفاظ بالأشياء المخصصة الخاصة بي في SCM مع التمكن من ترقية Wordpress".إن غريزتك بشأن الأدلة التي يجب معالجتها تستهدف إلى حد كبير (ستكون عناصر مدونتك الشخصية - السمات والمكونات الإضافية - في محتوى wp، لذلك يجب عليك فقط وضع ذلك في التخريب) ولكني لست ماهرًا بدرجة كافية في التخريب لإخبارك بكيفية وضع الدليل في مستودعك الخاص مع الاستمرار في الاعتماد على مستودع Wordpress للترقيات.إن "SCM" الخاص بي لتلك الملفات الموجودة على موقعي هو نسخة خارج الخادم من دليل wp-content.

ربما من وجهة النظر هذه، فإن إجابة جريجماك تناسبك بشكل أفضل.

ميولي الأولي هو محاولة SCM فقط لمعلومات الموضوع الخاص بي لأن هذه هي الأشياء الوحيدة التي "أمتلكها" بينما كل شيء آخر هو في الحقيقة مجرد جزء من النظام الأساسي الخاص بي (لا يختلف عن Apache أو PHP، حقًا).ومع ذلك، هذا هو المكان الذي ينهار فيه فهمي.كيف يمكنني اختيار SCM بشكل انتقائي لجزء فقط من بنية الدليل، وكيف يمكنني الحفاظ على تكوين Wordpress الذي أستخدمه؟

هذا هو بالضبط كيف أتحكم في إصدار مدونتي.لقد وجدت أنه يعمل بشكل رائع.بشكل عام، إذا كنت تقوم بتحرير ملفات WordPress، فأنت تقوم بذلك بطريقة خاطئة وستواجه البؤس عندما يحين وقت الترقية.

لتبسيط ذلك، أستخدم TortoiseSVN.لقد انتقلت إلى دليل /wp-content/themes/ الخاص بي في Windows Explorer، وقمت بالنقر بزر الماوس الأيمن على دليل السمة المخصصة الخاصة بي، واخترت يستورد من قائمة السياق.بعد استيراد كافة الملفات الموجودة، قمت بإجراء الدفع على هذا الدليل وتم تعيين كل شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top