نظام تحكم بالمراجعات

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

المصطلحات 
تختلف العمليات والمفردات المستخدمة في كل نظام تحكم مراجعات ولكن بشكل عام تتشارك فيما بينها هذه المصطلحات

 خط مرجعي (baseline)
 مراجعة موافق عليها لملف أو مستند، بحيث يمكن أن يتم إجراء تغييرات متتابعه لها (متتاليه عليها).
 فرع (Branch)
 أي مجموعة من الملفات في أنظمة التحكم بالمراجعات يمكن أن يتم جعلها متفرعة (branch) أو متشعبة (fork) عند وقت معين وبالتالي من ذلك الوقت وصاعداً فإن نسختين من تلك الملفات يمكن تطويرها بسرعات مختلفة وبشكل مستقل عن بعض.
 تغيير (Change)
 التغيير يمثل تعديل معين لمستند تحت نظام التحكم بالمراجعات. كل نظام تحكم بالمراجعات يختلف عن آخر في اعتبار تجميعة البيانات المسماة تغييراً.
 قائمة التغييرات (Change list)
 في عدة أنظمة تحكم بالمراجعات التي تستخدم التضمينات المتعددة التغييرات فإن قائمة التغييرات هي التغييرات التي تم تصييرها في تضمين واحد. يمكن أن تمثل إيضاً التغييرات المتتابعة في الشفرة المصدرية لتسمح بفحص الشفرة كما هي تتابعيا عبر الرقم التسلسي للتغيير.
 جلب (Checkout)
 عملية الجلب هي إنشاء نسخة محلية من المراجعة الأخيرة في المستودع، أو يمكن للمستخدم تحديد مراجعة معينة لجلبها بدلاً من جلب آخر مراجعة.
 استنساخ (Clone)
 الاستنساخ يعني إنشاء مستودع يحوي مراجعات مستودع آخر. وهذه العملية تعادل عملية «الدفع» أو «السحب» لمستودع فارغ (حديث التشغيل). ويمكن أن يطلع على مستودعين لفظ مُستنسخ عندما يتم مزامنتهم دائماً وبالتالي يملكان نفس المراجعات.
 تضمين (Commit)
 تضمين يعني كتابة أو دمج تغييرات تم عملها للمستودع. والمصطلح «تضمين» يمكن استخدامه كاسم وفعل، فالاسم يعني آخر مراجعة تم دفعها للمستودع.
 تضارب (Conflict)
 يحدث تضارب عندما يقوم طرفين بعمل تغييرات بنفس المستند ولم يستطع النظام دمج التعديلات تلقائياً. وبالتالي فإنه يتطلب تدخلاً يدوي من المستخدم لـ«اصلاح» التضارب بالجمع بين التعديلين والتوافق بينهما أو تفضيل تعديل طرف على طرف وبالتالي تجاهل تعديل أحدهما.
 ضغط دلتا (Delta compression)
 تستخدم أغلب أنظمة التحكم بالمراجعات ضغط دلتا والذي يحتفظ فقط بفرق التغييرات بين نسخ الملفات على مدى المراجعات. وهذا يسمح بفاعلية أكثر بتخزين ملفات عدة.
 تيار ديناميكي (Dynamic stream)
 تيار بيانات يكون فيه مراجعات كافة الملفات أو بعضها مرآة لتلك المراجعات في التيار الأصل.
 تصدير (Export)
 التصدير هو عملية الحصول على الملفات من المستودع. تشبه عملية «الجلب» عدا أنها تنشئ مجلد عمل فارغ من البيانات الوصفية للمراجعات. وهذه العملية غالباً ماتستخدم قبل عملية نشر المحتوى.
 مناولة (Fetch)
 انظر: سحب.
 اندماج تقدمي (Forward integration)
 عملية دمج التغييرات التي تم إنشاءها في المستودع الأساسي للفرع الحالي (لتطوير ميزة أو تابع لفريق ما).
 الرأس أو الهامة (Head)
 هي أحدث تضمين إما للمستودع أو لفرع ما. المستودع وكل فرع يملك رأس خاص به على الرغم من أن الرأس أحيانا يشير للمستودع نفسه.
 استيراد (Import)
 هي عملية نسخ مجلد محلي (الذي ليس نسخة عمل حالياً) للمستودع لأول مرة.
 تشغيل (Initialize)
 لإنشاء مستودع فارغ جديد.
 دلتا تشابكية (Interleaved deltas)
 بعض أنظمة التحكم بالمراجعات تستخدم طريقة دلتا تشابكية لأنها تسمح بتخزين تأريخ الملفات النصية بفعالية أكثر من ضغط دلتا.
 علامة (Label)
 انظر: وسم.
 خط رئيسي (Mainline)
 يشبه «الجذع» ولكن يمكن أن يكون لكل فرع خط رئيسي.
 دمج (Merge)
 الدمج أو الضم هي عملية حيث يتم تطبيق عدة تغييرات لملف أو عدة ملفات.

 تعزيز (Promote)
 عملية نسخ محتويات ملف من مسار أقل تحكماً لمسار أكثر تحكماً. مثلاً، من مسار العمل لمستخدم للمستودع أو من تيار فرعي لتيار أساسي.
 دفع (push)
عمليات السحب والدفع هي عملية نسخ مراجعات من وإلى مستودع آخر، فعملية الدفع هي نسخ التغييرات المحلية للمستودع الأساس وبالتالي يمكن للأطراف الأخرى «سحب» النسخة.
 سحب (Pull)

عملية «السحب» تتم عبر الشخص المستلم ليتلقى ماتم دفعه من مستودع آخر عبر مستخدم آخر. يستخدم مصطلح «مناولة: fetch» أحيانا بنفس معنى سحب أو يعني «سحب» متبوعاً ب«تحديث»

مستودع (Repository)
المستودع هو حيث يتم حفظ الملفات الحالية والبيانات التأريخية لها، وغالباً مايكون على خادم خارجي.
 اصلاح (Resolve)
هي عملية تدخل المستخدم لحل مشكلة «تضارب» بين تغييرات مختلفة على نفس الملف.

 أندماج عكسي (Reverse integration)
عملية دمج فروع مختلفة في أساس المستودع (الجذع).
 مراجعة (Revision)
أو نسخة، هي أي تغيير للأصل.
 مشاركة (Share)
عملية جعل ملف واحد أو مجلد متوفر في عدة فروع بنفس الوقت، وعندما يتغير في فرع واحد يتغير في كافة الفروع.
 تيار (Stream)
حاوية لملفات متفرعة تملك علاقة معروفة لحاويات أخرى مماثلة. وتكون التيارات سلسلة هرمية، فكل تيار يمكن أن يرث خواص مختلفة (مثل المراجعات، مساحة الأسم، الشروط، المشتركين) من التيار الأساس.
 وسم (Tag)
الوسم، أو العلامة يمكن أن تشير للقطة لحظية متوافقة بين كل الملفات. هذه الملفات عند لحظة معين يمكن أن يتم وسمها باسم بسيط ذو معنى أو برقم إصدار.

 الجذع (Trunk)
هو الخط الأوحد للتطوير وليس بفرع، ويعتبر الأساس. يسمى أحياناً الخط المرجعي أو الخط الرئيسي أو الأساس.
 تحديث (Update)
دمج التغييرات من المستودع (من أطراف أخرى) لنسخة العمل المحلية.
 نسخة العمل (Working copy)
هي نسخة محلية من الملفات على المستودع، فكل الملفات علي المستودع كانت في نقطة معينة مجرد ملفات على نسخة عمل محلية.

اقرأ أيضاً 
 نظام التحكم بالمراجعة
 كود أساسي

مراجع 

عملية تطوير البرمجيات