سؤال

نحن نجري مناقشة حماسية حول هذا الأمر في مكان عملي.نحن نتحدث عن الصور التي قام المستخدم بتحميلها لمجموعة من المنتجات، وليس الصور اللازمة لعرض الموقع الأساسي.أقول "مستحيل" ولكنني أشعر بالفضول بشأن ما يعتقده الآخرون.

تحديث: فقط للتوضيح.هذه هي الصور المقدمة من العملاء للمنتجات التي يقومون بإدخالها/تعديلها.

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

المحلول

وأنا أتفق مع "لا مفر".

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

نصائح أخرى

طرق أخرى للسؤال عما إذا كان يجب أن يكون هناك شيء ما في التحكم في الإصدار:

  • هل تتغير الصور؟
  • هل التغييرات مرتبطة بأي شيء آخر؟
  • هل يمكن ارتكاب الأخطاء؟
  • هل التتبع مطلوب/مطلوب؟

إذا كان باقي الموقع خاضعًا للتحكم في الإصدار، فإن الإصدار يتحكم في الصور.

إذا تم إنشاء الصور، فإن الإصدار يتحكم في المولد.

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

لقد قمت مؤخرًا بإضافة مشروع جديد إلى مستودع SVN جديد، وفي كل مرة أنظر فيها إلى مجلد "التحميلات" أدرك كم كنت غبيًا في تضمين ذلك في الالتزام الأولي.

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

إذا لم يكن الأمر كذلك، وكان موقع الويب الخاص بك ثابتًا، فسأفعل ذلك فقط لأنه "جزء من الموقع".

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

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

/common_ancestor
   /project_code/      # repository a
   /resources_dir/     # repository b

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

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

إذا كنت لن تعرض الإصدار للعملاء، فما الفائدة إذن؟

يتمتع العملاء بالفعل بحرية استخدام التحكم في الإصدار من جانبهم، قبل إرسال الملفات.قد ترغب في تشجيعهم على القيام بذلك.

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