أنواع أنظمة التحكم في الإصدارات Version Control System

اقرأ في هذا المقال


أنواع أنظمة التحكم في الإصدارات:

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

1- نظام التحكم في الإصدار المحلي Local version control system:

يعتبر الاحتفاظ بإصدارات متعددة من الملفات عن طريق اتباع تسمية الملفات، عرضةً للخطأ بدرجة كبيرة، كان نظام التحكم في الإصدار المحلي أول محاولة ناجحة لحل هذه المشكلة، كان نظام التحكم في المراجعة (RCS) أحد أكثر أنظمة التحكم في الإصدارات شيوعًا في هذا الكادر، إذ تعمل هذه الأداة بشكل أساسي عن طريق الاحتفاظ بمجموعات التصحيح (أي الفرق بين محتوى الملف في كل مرحلة) باستخدام تنسيق خاص في متتبع الإصدار المخزّن على القرص الصلب المحلي (hard disk).

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

2- نظام المركزي للتحكم في الإصدار Centralized version control system:

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

إذن سنتساءل حول كيف تُحل هذه المشكلة؟ في الواقع يتم حلها عن طريق الاحتفاظ بالملفات في مكان عام (الخادم “server”)، يمكن للجميع الوصول إليها من أجهزتهم المحلية (العملاء “clients”)، ومن هنا، وُلد النظام المركزي للتحكم في الإصدار.

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

3- نظام التحكم في الإصدار الموزع Distributed version control system:

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

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

تتمتع أنظمة التحكم في الإصدارات الموزعة بمزايا أنظمة التحكم في الإصدارات المحلية، مثل ما يلي:

  • إجراء تغييرات محلية دون أي قلق من الاتصال بالخادم في أي وقت.
  • عدم الاعتماد على نسخة واحدة من الملفات المخزنة في الخادم.

يتم دمجها مع مزايا أنظمة التحكم المركزية في الإصدار، مثل ما يلي:

  • إعادة استخدام العمل.
  • العمل التعاوني، وعدم الاعتماد على التاريخ المخزن على الأجهزة الفردية.

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

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


شارك المقالة: