كيف يمكنني استخدام خطافات ما بعد الالتزام لنسخ الملفات الملتزم بها إلى دليل ويب من SVN؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

تم تثبيت Apache وSubversion على خادم Ubuntu الخاص بي.أستخدم هذا الخادم كخادم مرحلي، فقط لأغراض الاختبار.أستخدم Apache لاستضافة تطبيق الويب، وSubversion للاحتفاظ بنسخ من الكود المصدري.

سير العمل الحالي الخاص بي:

  • إجراء تغييرات على ملف
  • قم بتسليم الملف إلى مستودع Subversion
  • قم بتحميل الملف الجديد عبر SFTP إلى دليل Apache العام
  • عرض التغييرات في متصفح الويب الخاص بي

سأكون أكثر سعادة إذا كان سير العمل الخاص بي على النحو التالي:

  • إجراء تغييرات على ملف
  • قم بتسليم الملف إلى مستودع Subversion
  • في الخلفية، يضع Subversion نسخة من الملف المُلتزم به في دليل Apache العام
  • عرض التغييرات في متصفح الويب الخاص بي

لدي خبرة قليلة جدًا في إدارة الخادم، وأقدر أي مساعدة أو مؤشرات.سمعت أن خطافات ما بعد الالتزام هي ما أحتاج إليه، وأنه يمكنني كتابة نصوص bash للقيام بذلك، لكنني لست متأكدًا من أين أبدأ ولم أجد أي شيء حقًا بعد الكثير من البحث في Google.

شكرًا لك!

نصائح أخرى

يمكن القيام بذلك، ولكن دفع كل التزام إلى موقع الإنتاج تلقائيًا ليس دائمًا فكرة جيدة.في بعض الأحيان تكون هناك تغييرات أخرى يجب أن تستمر، وتعطيل الموقع بسبب وجود الكود الجديد، ولكن لم يتم تحديث مخطط قاعدة البيانات بعد هو أمر محرج للغاية.

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

ولكن إذا كنت تريد ذلك حقًا، فيمكنك وضع الأوامر في مشغل ما بعد الالتزام، والذي سيفعل كل شيء تلقائيًا نيابةً عنك.يمكن أن يتضمن ذلك تشغيل برنامج نصي للترحيل على الخادم (إذا كان موجودًا لهذا التغيير)، للتعامل مع أي تغييرات غير متعلقة بالتعليمات البرمجية يجب حدوثها.

اعتقد ان حقيقي, ، السؤال الشامل الذي يجب أن تطرحه على نفسك --- والذي ربما تكون قد طرحته على نفسك بالفعل --- هو هذا:"كيف يمكنني اختبار الكود الخاص بي بسهولة أكبر قبل نشره؟"

أعتقد أن الإجابة الجيدة هي تثبيت Apache على صندوق التطوير الخاص بك وتشغيله كمستخدم خاص بك، باستخدام مسار webroot و/أو cgi على /home/richardhenry/src/mywebsite (أو أينما قمت بمراجعة الكود الخاص بك).

بهذه الطريقة، يمكنك اختبار التعليمات البرمجية الخاصة بك دون الالتزام.ونتيجة لذلك، لن تتخلص من التزاماتك المكسورة أو عديمة الفائدة.بشكل عام، يعد الحفاظ على استقلالية الأشياء فكرة جيدة (TM).

بدلاً من ذلك، قم بمزامنة خادم الويب مع دليل العمل الخاص بك باستخدام rsync، أو اكتب برنامجًا نصيًا يدفع ملفك (ملفاتك) من مربع التطوير إلى خادم التدريج الخاص بك وأضف قاعدة Makefile التي تقوم بتشغيل البرنامج النصي الخاص بك (أو تستدعي rsync).إذا أردت أن تكون حقًا يتوهم، استخدم inotify أو أي أداة أخرى لرصد إشعارات الملفات لتشغيل البرنامج النصي الخاص بك تلقائيًا.

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