إدارة المراجعة الموزعة


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

الموزعة في مقابل المركزية

تستخدم إدارة المراجعة الموزعة (DRCS)أسلوب النظير للنظير علي العكس من أسلوب العميل-الخادم الذي تتبعه النظم المركزية.[١] فبدلا من وجود مستودع مركزي واحد يقوم فيه العملاء بالعمل المتزامن, فإن نسخة عمل كل نظير في قاعدة الأكواد هي مستودع في حد ذاته. تُجري إدارة المراجعة الموزعة المزامنة عن طريق تبادل patche (يونكس) (مجموعات التغير) من نظير إلي نظير. ينتج عن ذلك بعض الاختلافات الهامة عن النظام المركزي:

  • لا توجد نسخة مرجعية أساسية من قاعدة الأكواد بشكل افتراضي ولكن توجد نسخ عمل فقط.
  • تكون العمليات المشتركة (مثل التسجيلات, والاطلاع علي التاريخ, وعكس التغييرات) سريعة لأنه لا توجد حاجة للاتصال بخادم مركزي..[٢]

بدلا من ذلك فإن الاتصال ضروري فقط عند دفع أو جذب التغييرات من وإلي النظراء الآخرين.

  • تعمل كل نسخة عمل بكفاءة باعتبارها نسخة احتياطية بعيدة لقاعدة الأكواد وتاريخها المتغير مما يعتبر حماية طبيعية ضد فقدان البيانات.[٢]

هناك اختلافات أخرى كالآتي:

  • قد توجد العديد من المستودعات المركزية.
  • يتم دمج الأكواد من المستودعات المختلفة بناءاً علي شبكة الثقة, أي الميزة أو الصفة التاريخية للتغيرات.
  • الضباط هم أعضاء المشروع ممن لديهم سلطة فعالة لتقرير أي الفروع سيتم دمجها
  • الشبكة ليست مشتركة في معظم العمليات.
  • توجد مجموعة منفصلة من العمليات المتزامنة متاحة للتسجيل أو تلقي التغييرات من مستودعات بعيدة.

يُشير أنصار نظام إدارة الإصدارات المركزية (DVCS) إلي عدة مزايا لإدارة الإصدار الموزع أفضل من النموذج المركزي:

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

يصف جول سبولسكي مؤلف تطوير البرمجيات إدارة الإصدار الموزعة بأنها قد تكون أكبر تقدم في تكنولوجيا تطوير البرمجيات علي مدي العشر سنوات الأخيرة.[٣]

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

النظم

النظم المفتوحة

يتسم النظام المفتوح لإدارة المراجعة الموزعة بدعمه للفروع المستقلة واعتماده الكبير علي عمليات الدمج. وتتضمن خصائصه العامة ما يلي:

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

من أوائل النظم المفتوحة نظام (بت كيبر) المستخدم في تطوير نواة لينكس. عندما قرر صناع (بت كيبر) في عام 2005 قصره علي الترخيص,[٤] بحث مطورو لينكس عن استبدال مجاني. تتضمن النظم المفتوحة الشائعة للاستخدام المجاني في عام 2010 ما يلي:

للحصول علي قائمة كاملة ـ أنظر مقارنة بين برمجيات إدارة المراجعة

النظم المستنسخة

النظام المستنسخ لإدارة المراجعة الموزعة يعتمد علي قاعدة بيانات مستنسخة. يكون الدخول مماثل للالتزام بالتوزيع. يخلق الالتزام الناجح خط أساسي واحد مما يقلل الحاجة إلي عمليات الدمج. مثال لنظام توزيع مستنسخ هو كود كو أوب Code Co-op

نموذج العمل

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

التاريخ

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

المستقبل

بدأت بعض النظم المركزية الداخلية في اكتساب خصائص موزعة فمثلا أباتشي سبفيرجن قادر علي أداء عمليات عديدة بدون شبكة.[٨] وقد يصبح الأمر أكثر صعوبة في الفصل بين النظم الموزعة داخليا والنظم المركزية هناك العديد من الأدوات التي تعتمد علي إدارة الإصدارات مثل برنامج ويكي ونظام الملفات ومحرر نصوص. وبعضها بدأ استخدام خصائص نظام إدارة الإصدارات المركزية (DVCS) لتتكامل مع خصائصه مثل نظم جازيست ويكي وإيكي ويكي.

أنظر أيضا

المراجع

  1. ^ Wheeler، David. Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) Systems. Retrieved May 8, 2007.
  2. ^ أ ب O'Sullivan، Bryan. Distributed revision control with Mercurial. Retrieved July 13, 2007.
  3. ^ Spolsky، Joel (2010-03-17). Distributed Version Control is here to stay, baby. Joel on Software. Retrieved 2010-06-18.
  4. ^ "Bitmover ends free Bitkeeper, replacement sought for managing Linux kernel codeWikinews، April 7, 2005.
  5. ^ Ubuntu in Launchpad. Canonical Ltd. Retrieved 2008-10-21.
  6. ^ Arnö، Kaj (2008-06-19). Version Control: Thanks, BitKeeper - Welcome, Bazaar. Retrieved 2008-06-19.
  7. ^ Getting Started/Sources/Amarok Git Tutorial. KDE TechBase. KDE
    (August 25, 2009). Retrieved October 9, 2009.
  8. ^ http://osdir.com/Article203.phtml

وابط خارجية

قالب:Revision control software

de:Versionsverwaltung#Verteilte Versionsverwaltung Distributed revision control]] it:Controllo di versione distribuito ja:分散型バージョン管理システム ko:분산 버전 관리 uk:Розподілена система керування версіями