مونتون (برنامج)
المونوتون هو أداة برمجية حاسوب تخص مصدر مفتوح تقوم بـ التحكّم الموزّع في المراجعة. ويتتبع المونوتون المراجعات التي تمر بها الملفات كما يصنف مجموعات المراجعات في فصائل ويتتبع تاريخها عبر تعديل مسمياتها.
يركز المشروع على التكامل في الأداء. فقد صُمم المونوتون للتعامل مع العمليات الموزعة ويستغل بشدّة مبادئ الكتابة المشفرة أو الكتابة ذات توقيع رقمي ليقتفى أثر مراجعات الملف (من خلال SHA-1secured hash) ولتوثيق تحركات المستخدم عبر توقيعات خوارزمية آر إس إيهالمشفرة والشفرة هي توقيع رقمي
نظرًا لأنه يشبه جنو أرك ويختلف عن الإصدار الجزئى أباتشي سبفيرجن، يتعامل المونوتون بأسلوب توزيعي مع التحكم في الإصدار. ويستخدم المونوتون رموز SHA-1 HASh ليحدد الملفات ومجموعات الملفات المخصصة كما هو الحال مع جت وميركوريال في محل المراجعة الخطية للأرقام. ويحتفظ كل مشارك بتاريخ مراجعاته مخزّنًا على قاعدة بيانات إس كيو لايت.
قبل إجراء بعض التحسينات على المراجعة 0.27, يؤكد منوتون على أن التحسين غالبًا ما يعزى إلى الخبرات المبدئية الفقيرة. وتعتبر أولى حركات المستخدم الجديد غالبًا ما تكون المواءمة (مطابقة) بين قاعدة بيانات مونوتون كبيرة, وهو ما يستغرق ساعات بسبب الصلاحية الواسعة وفحص التكامل الذي تنفذه مونوتون حينما تُنقل المراجعات إلى الشبكة. وبمجرد إنشاء القاعدة الأولية (المواءمة), غالبًا ما تستمر التحركات المتوالية بسرعة أكبر. ونظرًا لأننا في يوليو 2011 تحديث, لا يزال هناك مجال للتحسين الإضافي على بعض الوظائف النادرة.
تبدو مونوتون قوية على وجه الخصوص في سير العمل المدمج/المتشعب, وهو ما تحققه جزئيا بالسماح بالمعاينة قبل الدمج
رُغم إن مونوتون تدعُم بالأساس تشكيلة من بروتوكولات الشبكات لمواءمة تفريعات الأكواد, إلا أنها تختصّ الآن باستخدام بروتوكول معتاد يدعى netsync, وهو أقوى وأكفأ ويتشارك في بعض المفاهيم مع cvcup وrsync. (ومع ذلك, وفيما يتعلق بالإصدار 0.27, من المحتمل أنه يستخدم بروتوكول netsync عبر أي مسار يشمل بشكل ملحوظ وصلات ssh). ويمتلك netsync منفذًا لـ أياناالمخصص له (4591) ويتم دعم الإصدارات الأقدم عن طريق مكون إضافي لإجراء تحليل مروري إيثار ريال. وليس هناك خادم مونوتون خاص لأن أي عميل مونوتون يصلح للعمل كخادم.
تشمل التفاصيل الأخرى للمونوتون:
بالنسبة لإصدار يناير 2008 [[تحديث]], تشمل مساوئ مونوتون:
[[كيوت|Qt]] لإدارة قواعد البيانات وساحات العمل.
قدم الإصدار 0.26 من مونتو تغييرات جذرية على البنية الداخلية لقاعدة البيانات منها بنية جديدة تعرف بين مطورين مونوتون بـroaster. ولا تتمكن قواعد البيانات التي أنشأها الإصدار 0.26 من تبادل المراجعات مع قواعد بيانات مونوتون القديمة. ولابد أن تُرقّى قواعد البيانات القديمة أولاً إلى تنسيق جديد. ولا يتفق بروتوكول netsync الجديد مع الإصدارات الأحدث من مونوتون.
تُطبّق المونوتون في اللهجة الجديدة من c++ في مقدمة [[بوست (مكتبات سي++)]] ومكتبة [[Botan (programming library)|Botan]] للكتابة الشفرية ومكتبة قواعد بيانات [[إس كيو لايت]]. وتدعم مونوتون التعديل والتمديد من خلال دوال الهووك المكتوبة في [[لغة برمجة]] Lua. وتعمل خاصية بناء العملية في المونوتون عبر [[buildbot]] وتشمل [[اختبارات استرداد]] واسعة المجال.
في أبريل 2005، أصبح المونوتون موضوع مشوّق للغاية في [[البرمجيات الحرة والمفتوحة المصدر]] بعد أن ذكره [[لينوس تورفالدس]] كبديل ممكن لـ [[Bit Keeper]] في عملية تطوير [[لينكس]]. وفي نشر بقائمة المراسلة Linux kernel، أشاد تروفالدز بمونوتون في حين انتقض طريقة الهدم (عمومًا كافة أنظمة التحكم في إصدار خادم العميل):
“ لا تنزعج بإبلاغي عن الطريقة الهدمية. إذا كان الأمر كذلك، فابدأ بالقراءة عن "مونوتون". ويبدوا أنه من أكثر البدائل صلاحية, لكن لا تتملّق المطور كثيرًا حتى لا يجدوا ما يعملوا عليه. فهم على وعى تام بمشاكلي)
بدلاً من تبنى مونوتون, قرر تروفالدز أن يكتب نظامه SCM الخاص, [[جت (برنامج)|جت]]. ويستخدم تصميم جيت بعض أفكار مونوتون, لكن المشروعان لا يشتركان في أي كود مصدر رئيسي. وركز جيت أكثر على الأداء العالي, الذي استلهمه من التاريخ الطويل لأنماط التعاون الموزعة عالية الطلب التي استخدمها تروفالدز وكتّاب linux kernel.
دار الجدل حول قضيه هامة هي ما إذا كان استبدال [[bitkeeper]] ينبغي أن يدعم [[Cherry picking (fallacy)#In revision control|cherry picking]], بينما يستطيع المخزن التفريعى أن يدعم دفعات متداخلة ويرفض غيرها على أساس فردى. ويجادل تروفالدز أن هذا المنهج "ينتج عن الديناميكيّات والحالات النفسيّة الخاطئة في النظام "بنقل العبء إلى [[Upstream (software development)|upstream]] [[صيانة البرمجيات]] rather than forcing [[Downstream (computer science)|downstream]] مخازن معاكسة أكثر من نظيراتها الموافقة وذلك لبذل جهد أكبر للحفاظ على التفريعات من المهملات. وناقش مضيفًا أن مونوتون كانت صائبة في تحولها إلى cherry-picking كجزء تفصيلي لكنها فشلت في تطويعه بما يكفى ليسهل "إلقاء" أي تفريعات غير نظيفة بعد استيفاء غرضها. كما لاحظ تروفالدز أن مونوتون في هذا الوقت لم تحقق مستوى الأداء المطلوب لمشروع بحجم تطوير linux kernel.
تسرى هذه الحجة على خلاف ما يعتقده مطوّرو البرامج من أن cherry picking يعد تفصيلة متقدمة لدرجة أن أداة scm لابد وأن تسعى لتدعيمها. وتعتبر أدوات SCM الأخرى, مثل [[Darcs]] قويّة في هذه المنطقة على وجه الخصوص. بالنسبة لإصدار 2010 [[تحديث]] . دعّم كلاً من جيت ومونوتون لبعض الوقت
التدعيم الحالي للبرامج يتم من خلال [[قوائم المراسلة]] و[[آي آر سي]] و http://wiki.monotone.ca/[[تصنيف:برمجيات حرة بلغة سي++]]