مونتون (برنامج)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
monotone
Monotone-logo.png
المطور The monotone team
الإصدار الأولي 6 أبريل 2003 (2003-04-06)
مكتوب بلغة C++
نظام تشغيل Unix, Linux, BSD, Mac OS X, Windows
متوفر باللغة English, Italian, Swedish, Portuguese, German, Spanish
النوعية Revision control
الترخيص GNU General Public License
موقع وب monotone.ca

تعديل

المونوتون هو أداة برمجية حاسوب تخص مصدر مفتوح تقوم بـ التحكّم الموزّع في المراجعة. ويتتبع المونوتون المراجعات التي تمر بها الملفات كما يصنف مجموعات المراجعات في فصائل ويتتبع تاريخها عبر تعديل مسمياتها. يركز المشروع على التكامل في الأداء.[1] فقد صُمم المونوتون للتعامل مع العمليات الموزعة ويستغل بشدّة مبادئ الكتابة المشفرة أو الكتابة ذات توقيع رقمي ليقتفى أثر مراجعات الملف (من خلال SHA-1secured hash) ولتوثيق تحركات المستخدم عبر توقيعات خوارزمية آر إس إيهالمشفرة والشفرة هي توقيع رقمي

التصميم[عدل]

نظرًا لأنه يشبه جنو أرك ويختلف عن الإصدار الجزئى أباتشي سبفيرجن، يتعامل المونوتون بأسلوب توزيعي مع التحكم في الإصدار. ويستخدم المونوتون رموز SHA-1 HASh ليحدد الملفات ومجموعات الملفات المخصصة كما هو الحال مع Git وميركوريال في محل المراجعة الخطية للأرقام. ويحتفظ كل مشارك بتاريخ مراجعاته مخزّنًا على قاعدة بيانات SQLite.

التكامل[عدل]

قبل إجراء بعض التحسينات على المراجعة 0.27, يؤكد منوتون على أن التحسين غالبًا ما يعزى إلى الخبرات المبدئية الفقيرة. وتعتبر أولى حركات المستخدم الجديد غالبًا ما تكون المواءمة (مطابقة) بين قاعدة بيانات مونوتون كبيرة, وهو ما يستغرق ساعات بسبب الصلاحية الواسعة وفحص التكامل الذي تنفذه مونوتون حينما تُنقل المراجعات إلى الشبكة. وبمجرد إنشاء القاعدة الأولية (المواءمة), غالبًا ما تستمر التحركات المتوالية بسرعة أكبر. ونظرًا لأننا في يوليو 2011 تحديث, لا يزال هناك مجال للتحسين الإضافي على بعض الوظائف النادرة.

سير العمل[عدل]

تبدو مونوتون قوية على وجه الخصوص في سير العمل المدمج/المتشعب, وهو ما تحققه جزئيا بالسماح بالمعاينة قبل الدمج [2]

الشبكات[عدل]

رُغم إن مونوتون تدعُم بالأساس تشكيلة من بروتوكولات الشبكات لمواءمة تفريعات الأكواد, إلا أنها تختصّ الآن باستخدام بروتوكول معتاد يدعى netsync, وهو أقوى وأكفأ ويتشارك في بعض المفاهيم مع cvcup وrsync. (ومع ذلك, وفيما يتعلق بالإصدار 0.27, من المحتمل أنه يستخدم بروتوكول netsync عبر أي مسار يشمل بشكل ملحوظ وصلات ssh). ويمتلك netsync منفذًا لـ أياناالمخصص له (4591) ويتم دعم الإصدارات الأقدم عن طريق مكون إضافي لإجراء تحليل مروري إيثار ريال. وليس هناك خادم مونوتون خاص لأن أي عميل مونوتون يصلح للعمل كخادم.

التفاصيل الأخرى[عدل]

تشمل التفاصيل الأخرى للمونوتون:

  • الدعم الجيد للعالمية والتوطين
  • التصميم المتنقل, المعمول به في c++
  • يستطيع المونوتون استيراد مشاريع [[يستطيع المونوتون استيراد مشاريع CVS
  • توقيع المراجعات باستخدام شهادات RSA
  • سهل التشغيل لأن مجموعة الأوامر تشبه تلك التي في CVS
  • التوثيق الجيد

المساوئ[عدل]

بالنسبة لإصدار يناير 2008 تحديث,As of January 2008 تشمل مساوئ مونوتون:

  • المستخدمون المحتملون لا يستطيعون الفحص (أو المعاينة) من خلال مفوّض (أو وكيل) (وهو الأمر الشائع في بيئة عمل الشركات) لأن البروتوكول ليس http.
  • ليس بدرجة الشيوع التي قد ينافس بها DVCS الخاص بالمصدر المفتوح مثل bAZAAR, Git, أو ميركوريال.
  • القصور في بعض محاور الأداء لبعض العمليات (أبرزها الدفع الأولى).
  • القصور في وجود واجهة مستخدم رسومية. ومع ذلك، بعضها مستمر بما في ذلكTracMtn, وهو مكون إضافي لـ Trac وهو معالج القالب للحافظة وتصفح المستودع،guitone ووهي واجهة واجهة مستخدم رسومية

Qt لإدارة قواعد البيانات وساحات العمل.

الإنجازات[عدل]

قدم الإصدار 0.26 من مونتو تغييرات جذرية على البنية الداخلية لقاعدة البيانات منها بنية جديدة تعرف بين مطورين مونوتون بـroaster.[3] ولا تتمكن قواعد البيانات التي أنشأها الإصدار 0.26 من تبادل المراجعات مع قواعد بيانات مونوتون القديمة. ولابد أن تُرقّى قواعد البيانات القديمة أولاً إلى تنسيق جديد. ولا يتفق بروتوكول netsync الجديد مع الإصدارات الأحدث من مونوتون.

التطبيقات[عدل]

تُطبّق المونوتون في اللهجة الجديدة من c++ في مقدمة boost library ومكتبة Botan للكتابة الشفرية ومكتبة قواعد بيانات SQLite. وتدعم مونوتون التعديل والتمديد من خلال دوال الهووك المكتوبة في لغة برمجة Lua. وتعمل خاصية بناء العملية في المونوتون عبر buildbot وتشمل اختبارات استرداد واسعة المجال.

المونوتون كإلهام من ألجيت[عدل]

في أبريل 2005، أصبح المونوتون موضوع مشوّق للغاية في البرمجيات الحرة والمفتوحة المصدر بعد أن ذكره لينوس تورفالدس كبديل ممكن لـ Bit Keeper في عملية تطوير لينكس. وفي نشر بقائمة المراسلة Linux kernel، أشاد تروفالدز بمونوتون في حين انتقض طريقة الهدم (عمومًا كافة أنظمة التحكم في إصدار خادم العميل):[4]

“ لا تنزعج بإبلاغي عن الطريقة الهدمية. إذا كان الأمر كذلك، فابدأ بالقراءة عن "مونوتون". ويبدوا أنه من أكثر البدائل صلاحية, لكن لا تتملّق المطور كثيرًا حتى لا يجدوا ما يعملوا عليه. فهم على وعى تام بمشاكلي) [4]

بدلاً من تبنى مونوتون, قرر تروفالدز أن يكتب نظامه SCM الخاص, Git. ويستخدم تصميم جيت بعض أفكار مونوتون, لكن المشروعان لا يشتركان في أي كود مصدر رئيسي. وركز جيت أكثر على الأداء العالي, الذي استلهمه من التاريخ الطويل لأنماط التعاون الموزعة عالية الطلب التي استخدمها تروفالدز وكتّاب linux kernel. دار الجدل حول قضيه هامةقالب:اين هي ما إذا كان استبدال bitkeeper ينبغي أن يدعم cherry picking, بينما يستطيع المخزن التفريعى أن يدعم دفعات متداخلة ويرفض غيرها على أساس فردى. ويجادل تروفالدز أن هذا المنهج "ينتج عن الديناميكيّات والحالات النفسيّة الخاطئة في النظام "بنقل العبء إلى upstream maintainers rather than forcing downstream مخازن معاكسة أكثر من نظيراتها الموافقة وذلك لبذل جهد أكبر للحفاظ على التفريعات من المهملات. وناقش مضيفًا أن مونوتون كانت صائبة في تحولها إلى cherry-picking كجزء تفصيلي لكنها فشلت في تطويعه بما يكفى ليسهل "إلقاء" أي تفريعات غير نظيفة بعد استيفاء غرضها.[5] كما لاحظ تروفالدز أن مونوتون في هذا الوقت لم تحقق مستوى الأداء المطلوب لمشروع بحجم تطوير linux kernel. تسرى هذه الحجة على خلاف ما يعتقده مطوّرو البرامج من أن cherry picking يعد تفصيلة متقدمة لدرجة أن أداة scm لابد وأن تسعى لتدعيمها. وتعتبر أدوات SCM الأخرى, مثل Darcs قويّة في هذه المنطقة على وجه الخصوص. بالنسبة لإصدار 2010 تحديث اعتبارا من 2010. دعّم كلاً من جيت ومونوتون لبعض الوقت

التدعيم[عدل]

التدعيم الحالي للبرامج يتم من خلال قوائم المراسلة وآي آر سي و http://wiki.monotone.ca/

مستخدمو مونوتون[عدل]

  • تستخدم بدجن الآن مونوتون لكلاً من بيدجينج نفسها وليبربل.[6]
  • Xaraya
  • AuroraUX
  • GENESIS
  • I2P

انظر أيضًا[عدل]

المراجع[عدل]

  1. ^ "7 Version Control Systems Reviewed". September 18th, 2008. اطلع عليه بتاريخ 2010-11-01. 
  2. ^ "Dealing with a Fork - monotone documentation". اطلع عليه بتاريخ 2010-11-21. 
  3. ^ What are rosters
  4. ^ أ ب Linus Torvalds (April 6, 2005). "LKML: Linus Torvalds: Kernel SCM saga". LKML. 
  5. ^ Linus Torvalds (April 7, 2005). "LKML: Linus Torvalds: Re: Kernel SCM saga". LKML. 
  6. ^ "Limitations of Monotone". اطلع عليه بتاريخ 2009-04-29. 
  1. ^ "7 Version Control Systems Reviewed". September 18th, 2008. http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/. Retrieved 2010-11-01.
  2. ^ "Dealing with a Fork - monotone documentation". http://www.monotone.ca/docs/Dealing-with-a-Fork.html. Retrieved 2010-11-21.
  3. ^ What are rosters
  4. ^ a b Linus Torvalds (April 6, 2005). "LKML: Linus Torvalds: Kernel SCM saga". LKML. http://lkml.org/lkml/2005/4/6/121.
  5. ^ Linus Torvalds (April 7, 2005). "LKML: Linus Torvalds: Re: Kernel SCM saga". LKML. http://lkml.org/lkml/2005/4/7/150.
  6. ^ "Limitations of Monotone". http://developer.pidgin.im/wiki/MonotoneLimitations. Retrieved 2009-04-29.

وصلات خارجية[عدل]