إدارة المراجعة الموزعة
هذه المقالة يتيمة حيث أن عددًا قليلاً من المقالات أو لا مقالات إطلاقًا تصل إليها. ساعد من فضلك بإضافة وصلات في المقالات ذات العلاقة. (مايو_2011) |
تقوم إدارة المراجعة الموزعةأو إدارة الإصدار الموزعة أو نظام إدارة الإصدارات المركزية (DVCS)بالإحتفاظ بتاريخ كل مراجعات برمجية حاسوب ويسمح للعديد من المطورين بالعمل في مشروع واحد بدون أن يكونوا متصلين بالضرورة علي شبكة مشتركة.
الموزعة في مقابل المركزية
تستخدم إدارة المراجعة الموزعة (DRCS)أسلوب النظير للنظير علي العكس من أسلوب العميل-الخادم الذي تتبعه النظم المركزية.[١] فبدلا من وجود مستودع مركزي واحد يقوم فيه العملاء بالعمل المتزامن, فإن نسخة عمل كل نظير في قاعدة الأكواد هي مستودع في حد ذاته. تُجري إدارة المراجعة الموزعة المزامنة عن طريق تبادل patche (يونكس) (مجموعات التغير) من نظير إلي نظير. ينتج عن ذلك بعض الاختلافات الهامة عن النظام المركزي:
- لا توجد نسخة مرجعية أساسية من قاعدة الأكواد بشكل افتراضي ولكن توجد نسخ عمل فقط.
- تكون العمليات المشتركة (مثل التسجيلات, والاطلاع علي التاريخ, وعكس التغييرات) سريعة لأنه لا توجد حاجة للاتصال بخادم مركزي..[٢]
بدلا من ذلك فإن الاتصال ضروري فقط عند دفع أو جذب التغييرات من وإلي النظراء الآخرين.
- تعمل كل نسخة عمل بكفاءة باعتبارها نسخة احتياطية بعيدة لقاعدة الأكواد وتاريخها المتغير مما يعتبر حماية طبيعية ضد فقدان البيانات.[٢]
هناك اختلافات أخرى كالآتي:
- قد توجد العديد من المستودعات المركزية.
- يتم دمج الأكواد من المستودعات المختلفة بناءاً علي شبكة الثقة, أي الميزة أو الصفة التاريخية للتغيرات.
- الضباط هم أعضاء المشروع ممن لديهم سلطة فعالة لتقرير أي الفروع سيتم دمجها
- الشبكة ليست مشتركة في معظم العمليات.
- توجد مجموعة منفصلة من العمليات المتزامنة متاحة للتسجيل أو تلقي التغييرات من مستودعات بعيدة.
يُشير أنصار نظام إدارة الإصدارات المركزية (DVCS) إلي عدة مزايا لإدارة الإصدار الموزع أفضل من النموذج المركزي:
- السماح للمستخدمين بالعمل بإنتاجية حتي وإن لم يرتبطوا عن طريق شبكة.
- يجعل معظم العمليات أكثر سرعة نظرا لعدم وجود شبكة.
- يسمح بالمشاركة في المشروعات بدون طلب الإذن من سلطات المشروع وبالتالي تعزيز ثقافة حكم بالاستحقاق[بحاجة لمصدر] بدلا من طلب الحصول علي حالة "الملتزم"
- السماح بالعمل الخاص حتي يستطيع المستخدمين استخدام نظام إدارة المراجعة حتي مع المسودات الأولية التي لا يريدون نشرها.
- تجنب الاعتماد علي آلة واحدة كنقطة فشل واحدة
- السماح بالإدارة المركزية للإصدار الجديد للمشروع
يصف جول سبولسكي مؤلف تطوير البرمجيات إدارة الإصدار الموزعة بأنها قد تكون أكبر تقدم في تكنولوجيا تطوير البرمجيات علي مدي العشر سنوات الأخيرة.[٣]
من أحد عيوب نظام إدارة الإصدارات المركزية (DVCS) أن الاستنساخ الأولي للمستودع أبطأ مقارنة بالمراجعة المركزية لأن كل الفروع وتاريخ المراجعة يتم نسخها. قد يرتبط ذلك كله معا إذا كانت سرعة الدخول منخفضة والمشروع كبير بما فيه الكفاية. علي سبيل المثال إذا كان حجم المستودع المستنسخ باستخدام الأمر "جت" (كافة التواريخ والفروع والإشارات وغيرها) لنواة لينكس يكون تقيبا حجم الرأس HEAD الغير مضغوط المُراجع في حين أن المراجعة المناظرة لفرع واحد في المراجعة المركزية قد تكون ذات حجم مضغوط لمحتويات الرأس HEAD (لكن بدون أي تاريخ أو قروع أو إشارات وغيرها) هناك مشكلة أخرى في نظام إدارة الإصدارات المركزية (DVCS) وهي غياب آلية الإقفال التي تعتبر جزء من معظم نظم إدارة الإصدارات ولا زالت تلعب دورا هاما في حالة الملفات الغير قابلة للدمج مثل أصول الرسومات.
النظم
النظم المفتوحة
يتسم النظام المفتوح لإدارة المراجعة الموزعة بدعمه للفروع المستقلة واعتماده الكبير علي عمليات الدمج. وتتضمن خصائصه العامة ما يلي:
- كل نسخة عاملة هي شعبة أو تفريع فعال
- يُطبق النظام كل فرع كنسخة عاملة مع تنفيذ بعض الدمج عن طريق تبادل عادي للـ patch من فرع إلي فرع.
- تشعب الكود يحدث بسهولة أكبر عند الرغبة لأن كل نسخة عاملة شعبة محتملة (وبالمثل فإن الشعب غير المرغوب فيها يكون إصلاحها أسهل لأنه بما أن النزاع يمكن حله فإن إعادة دمج الكود سهلة).
- قد يكون من الممكن التنقل بين التغيرات المفردة واختيارها من بين النظراء.
- يستطيع النظراء الجدد المشاركة بحرية بدون طلب الدخول إلي الخادم.
من أوائل النظم المفتوحة نظام (بت كيبر) المستخدم في تطوير نواة لينكس. عندما قرر صناع (بت كيبر) في عام 2005 قصره علي الترخيص,[٤] بحث مطورو لينكس عن استبدال مجاني. تتضمن النظم المفتوحة الشائعة للاستخدام المجاني في عام 2010 ما يلي:
- بازار الذي تم استخدامه منذ 2008 بواسطة أوبونتو[٥] وماي إس كيو إل وبواسطة خدمات استضافة المشروعات بما في ذلك لونشباد وسورس فورج.نت[٦],
- داركس
- "جت" والذي صنعه لينوس تورفالدس بعد انفصاله عن (بت كيبر) و(مونوتون) بهدف تحقيق أداء عالي للغاية وهو يستخدم حاليا في نواة لينكس والبيئة المكتبية جنوم وفري دسكتوب.أورج, وبيرل ودراجون فلاي بي إس دي, وإكليبس, كما تدرس كدي[٧], الآن استخدامها وكذلك خدمات استضافة المشروعات التي تتضمن (جثب) و(جيتوريوس).
- "ميركوريال" والذي تم وضعه بعد (بت كيبر) ويهدف إلي تحقيق الأداء وإمكانية التوسع, ويستخدمه حالياً مشروع موزيلا ونت بينز وبيثون, ونظام تشغيل سيمبيان وإليومس وأوبن جا دي كا، وكذلك غيرها من المصادر المفتوحة في مشروعات أوراكل, وخدمات استضافة المشروعات مثل بت باكيت ومدونة جوجل وسورس فورج.نت
- مونوتون
للحصول علي قائمة كاملة ـ أنظر مقارنة بين برمجيات إدارة المراجعة
النظم المستنسخة
النظام المستنسخ لإدارة المراجعة الموزعة يعتمد علي قاعدة بيانات مستنسخة. يكون الدخول مماثل للالتزام بالتوزيع. يخلق الالتزام الناجح خط أساسي واحد مما يقلل الحاجة إلي عمليات الدمج. مثال لنظام توزيع مستنسخ هو كود كو أوب Code Co-op
نموذج العمل
يكون النموذج الموزع أفضل بشكل عام بالنسبة للمشروعات الكبري التي بها مطورين مستقلين جزئياً مثل مشروع نواة لينكس لأن المطورين يمكنهم العمل مستقلين وتسليم تغييراتهم للدمج (أو الرفض). في النموذج المركزي يجب علي المطورين ترتيب عملهم بالتسلسل أو قد يواجهون مشكلات في الإصدارات المختلفة.
التاريخ
أول جيل نظام إدارة الإصدارات المركزية (DVCS) يتضمن (أرش) و(مونوتون). وبدأ الجيل الثاني بوصول (داركس) يتبعه استضافة نظم أخرى منها ميركوريال وجت التي تعتبر بديل لـ بت كيبر عندما لم يعد بالإمكان استخدامه مجانا بواسطة مشروع نواة لينكس وناشره. يتبعه بفترة قصيرة نظام بازار. قبل ذلك كان يتم استخدام نظم إدارة الإصدارات المركزية (DVCS) المغلقة مثل Sun WorkShop TeamWare التي ألهمت (بت كيبر) والتي كانت تستخدم علي نطاق واسع في المشروعات.
المستقبل
بدأت بعض النظم المركزية الداخلية في اكتساب خصائص موزعة فمثلا أباتشي سبفيرجن قادر علي أداء عمليات عديدة بدون شبكة.[٨] وقد يصبح الأمر أكثر صعوبة في الفصل بين النظم الموزعة داخليا والنظم المركزية هناك العديد من الأدوات التي تعتمد علي إدارة الإصدارات مثل برنامج ويكي ونظام الملفات ومحرر نصوص. وبعضها بدأ استخدام خصائص نظام إدارة الإصدارات المركزية (DVCS) لتتكامل مع خصائصه مثل نظم جازيست ويكي وإيكي ويكي.
أنظر أيضا
- Revision control
- List of revision control software
- Comparison of revision control software
- Category:Software using distributed revision control
- Repository clone
المراجع
مع أنه ورد في هذا المقال بعض المصادر أو عدد من وصلات خارجية، إلا أن غياب الإشارات المرجعية في نص المقالة أو بعض مقاطعها وفقراتها لا يسمح بالتعرف على مصدر كل عبارة على حدة فيعسر تقييم موثوقية ما ورد في المقالة. الرجاء تحسين هذه المقالة بوضع الإشارات المرجعية المناسبة. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. وسمت هذه المقالة منذ: يوليو 2008 |
- ^ Wheeler، David. Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) Systems. Retrieved May 8, 2007.
- ^ أ ب O'Sullivan، Bryan. Distributed revision control with Mercurial. Retrieved July 13, 2007.
- ^ Spolsky، Joel (2010-03-17). Distributed Version Control is here to stay, baby. Joel on Software. Retrieved 2010-06-18.
- ^ "Bitmover ends free Bitkeeper, replacement sought for managing Linux kernel code"، Wikinews، April 7, 2005.
- ^ Ubuntu in Launchpad. Canonical Ltd. Retrieved 2008-10-21.
- ^ Arnö، Kaj (2008-06-19). Version Control: Thanks, BitKeeper - Welcome, Bazaar. Retrieved 2008-06-19.
- ^ Getting Started/Sources/Amarok Git Tutorial. KDE TechBase. KDE
- (August 25, 2009). Retrieved October 9, 2009.
- ^ http://osdir.com/Article203.phtml
وابط خارجية
- Essay on various revision control systems, especially the section "Centralized vs. Decentralized SCM"
- Linus Torvalds email describing git (DVCS) to KDE developers
- Video of a talk Linus Torvalds gave about Git
- Bryan O'Sullivan video on Mercurial
- Ben Collins-Sussman (one of Subversion's authors) article on "The Risks of Distributed Version Control"
- Distributed Version Control Systems - Why and How by Ian Clatworthy, Bazaar/Canonical
- Software Development and Version Control systems plus handouts. Emphasis on Distributed Version Control Systems (DVCS) by Jari Aalto
- Introduction to distributed version control systems - IBM Developer Works article
قالب:Revision control software
de:Versionsverwaltung#Verteilte Versionsverwaltung Distributed revision control]] it:Controllo di versione distribuito ja:分散型バージョン管理システム ko:분산 버전 관리 uk:Розподілена система керування версіями