Git
يستخدم Rudel عمليات Git أصلية لـ PHP عبر Pitmaster. ولا يتطلب الملف التنفيذي المضيف git. يتم الوصول إلى المستودعات البعيدة عبر HTTP(S) أو SSH.
لكل بيئة معزولة اسم فرع واحد، rudel/{sandbox-id}، تستخدمه كل مهام سير عمل Git أدناه.
استنساخ مستودع بعيد إلى بيئة معزولة جديدة
wp rudel create --name=feature-x --git=https://example.test/my-theme.git
ينشئ Rudel البيئة المعزولة، ويستنسخ المستودع البعيد إلى themes/my-theme داخل مجلد البيئة (واسم المجلد هو اسم المستودع)، وينشئ الفرع rudel/{id} انطلاقًا من الفرع الافتراضي ثم يسحبه إلى نسخة العمل. مع --type=plugin، توضع نسخة العمل في plugins/my-theme بدلًا من ذلك. تُحفظ معلومات المستودع البعيد والمجلد والفرع الأساسي في البيئة المعزولة لاستخدامها في عمليات الدفع اللاحقة. إذا فشل الاستنساخ، تبقى البيئة المعزولة ويطبع الأمر تحذيرًا.
نسخة العمل مخصصة لـ wp rudel push. في الإصدار الحالي، لا تقدمها البيئة المعزولة (المسألة #11):
- تخدم البيئة المعزولة القالب المحدد باستخدام
--theme، أو القالب النشط على المضيف، المنسوخ من المضيف عند إنشاء البيئة المعزولة. يجب أن يشير--themeإلى قالب مثبّت على المضيف، لذا لا تُخدَم نسخة المستودع إلا إذا طابق اسم المستودع هذا المعرّف، ثم تكتب النسخة إلى دليل القالب المنسوخ. - تُحمَّل الإضافات دائمًا من دليل إضافات المضيف، لذا لا تُشغَّل نسخة
--type=pluginأبدًا.
أشجار العمل المرتبطة
عند استنساخ بيئة معزولة يكون دليل قالبها مستودع Git، ينشئ Rudel شجرة عمل مرتبطة للبيئة الجديدة بدلًا من نسخ الملفات:
wp rudel create --name=feature-y --clone-from=feature-x-3be7
توجد شجرة العمل على الفرع rudel/{new-id}. ويسجلها Rudel في بيانات البيئة المعزولة الجديدة الوصفية باسم شجرة عمل صريح مستند إلى معرّف البيئة المعزولة ونوع المحتوى ومعرّف القالب، حتى لا تتعارض بيئتان معزولتان تستخدمان معرّف القالب نفسه. يؤدي إتلاف البيئة المعزولة إلى إزالة شجرة العمل وحذف فرعها.
ينظر wp rudel cleanup --merged في أشجار العمل المرتبطة هذه فقط. راجع التنظيف.
دفع التغييرات
wp rudel push feature-x-3be7 --message="Update checkout template"
ينفّذ push التزامًا بكل تغيير في نسخة المستودع ويدفع الفرع rudel/{id} إلى origin. ويعيد No changes to push. عند عدم وجود تغييرات.
- يعيّن
--git=<remote>المستودع البعيد إذا لم يكن مسجلًا؛ وبعد أول عملية دفع ناجحة، يُحفظ. - يحدد
--dir=<dir>الدليل النسبي إلى دليل البيئة المعزولة، مثلthemes/my-theme. ويكون افتراضيًا الدليل المخزّن بواسطة--git، أو دليل البيئة المعزولة بأكمله عند عدم وجوده. - القيمة الافتراضية لـ
--messageهيUpdate from Rudel sandbox.
من PHP، ينفّذ Rudel::push( $id, $remote_url, $message, $subdir ) الإجراء نفسه ويطلق الخطافات rudel_*_environment_push.
هوية الالتزام
إذا لم تتضمن نسخة المستودع user.name أو user.email في إعدادات Git، يكتب Rudel القيمتين Rudel وrudel@localhost. عرّف RUDEL_GIT_AUTHOR_NAME وRUDEL_GIT_AUTHOR_EMAIL في wp-config.php لاستخدام قيم أخرى.