جنو أرك

من أرابيكا، الموسوعة الحرة

هذه هي النسخة الحالية من هذه الصفحة، وقام بتعديلها عبود السكاف (نقاش | مساهمات) في 11:05، 22 مارس 2023 (بوت: إصلاح أخطاء فحص أرابيكا من 1 إلى 104). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة.

(فرق) → نسخة أقدم | نسخة حالية (فرق) | نسخة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث
GNU arch
معلومات عامة
نوع
نظام التشغيل
المطور الأصلي
Thomas Lord
المطورون
Andy Tai
معلومات تقنية
حالة التطوير
Unmaintained
الإصدار الأخير
1.3.5
الرخصة

جنو أرك في مجال الحوسبة هو نظام للتحكم الموزع في تعديل البرمجيات وجزء من مشروع جنو ويخضع لرخصة جنو العمومية. يستخدم النظام في تتبع التعديلات التي تضاف لشجرة الكود source tree ومساعدة المبرمجين على دمج أو التعامل مع التعديلات التي يقوم بها العديد من الأشخاص في أوقات مختلفة. منذ عام 2009 توقفت عملية تطوير نظام جنو أرك فيما عدا إصلاح الثغرات الأمنية ولا يُنصح باستخدامه.[1]

خصائصه

بما أن النظام موزع وغير مركزي فكل نسخة معدلة باستخدام أرك تحصل على تعريف ID لا يتكرر على مستوى العالم، يمكن استخدام هذا التعريف في بيئة العمل الموزعة لدمج التعديلات بسهولة أو انتقاء تعديلات معينة من مصادر مختلفة تماما. غير مركزي يعني أنه لا داعي لوجود خادم مركزي يحتاج المطورون لتصريح بالدخول عليه حتى يشاركوا في البرنامج المراد تعديله. كما هو الحال في الأنظمة الأخرى يتم تخزين نسخة كاملة من المشروع للقراءة فقط على مستودع رسمي سواء باستخدام HTTP أو FTP أو SFTP ثم يسمح للمطورين بإضافة تعديلاتهم ونشرها في أرشيف (مستودع) عام خاص بهم حتى يتمكن كبير المطورين من دمج مجموعات التعديلات changesets يدويا في المستودع الرسمي. لمحاكاة أسلوب عمل نظام التحكم المركزي بإمكان كبير المطورين إتاحة الوصول إلى شل shell الخادم (SSH) أو التصريح بالتعديل (FTP، SFTP، WebDAV) على الخادم مما يسمح للمستخدمين المصرح لهم بالقيام بالتعديلات على الخادم المركزي، ولكن في الغالب هناك ديكتاتور يتولى عملية دمج تعديلات المشاركين في المشاريع التي تدار بواسطة جنو أرك. يحتوي جنو أرك على العديد من الخصائص الأخرى:

التعديلات الذرية Atomic commits

إما أن تنفذ عملية التعديل بالكامل أو لا تنفذ على الإطلاق. يجب أن تكون شجرة الكود سليمة قبل بدء أي عملية تعديل ولا ترى التعديلات إلا بعد اكتمالها، إن حدثت مقاطعة لهذه العملية تبقى التعديلات خفية ثم يتم التراجع عن عملية التعديل بأكملها قبل بدء أي عملية جديدة، تحول هذه الطريقة دون فساد أرشيف الكود والنسخ السليمة للمستخدمين الآخرين.

استخدام مجموعات التعديلات changesets

يتتبع نظام أرك مجموعات التعديلات – المشابهة للباتشات patches - بدلا من تتبع الملفات بشكل منفصل (كما يفعل CVS). كل مجموعة تعديلات تصف الفرق بين شجرة كود source tree وأخرى، لذا يمكن استخدام مجموعة التعديلات للوصول من نسخة إلى أخرى. يُنصح المطورون بإجراء عملية تعديل واحدة لكل خاصية أو إصلاح عيب bugfix.

تفرع سهل

عملية التفرع branching تتسم بالكفاءة ويمكن أن يدخل فيها عدد من الأرشيفات المختلفة. ببساطة يعلن الفرع (أو «تاج» tag) عن النسخة الذي جاء منها وتستمر عملية التطوير من هنا.

دمج احترافي

نظرا لاحتفاظ النظام بسجلات دائمة لكل النسخ الأصلية والنسخ المدمجة تستطيع عملية الدمج معرفة أي فرع يحتوى أي باتش تعديلات وبإمكانها القيام بعملية دمج من ثلاثة مصادر مختلفة مبنية على نسخة أصلية واحدة.

توقيعات مشفرة

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

إعادة التسمية

يمكن إعادة تسمية كل الملفات والمجلدات بسهولة، ويستخدم معهم تعريفات فريدة بدلا من الأسامي، بالتالي يمكن الاحتفاظ بتاريخ كل العمليات ودمج التعديلات بدون أي مشاكل حتى لو اختلفت أسامي الملفات في الأفرع.

تتبع البيانات الوصفية metadata.

يتم تتبع تصاريح الملفات. ويدعم النظام الوصلات الرمزية symbolic links ويتتبعها كما يتتبع الملفات والمجلدات.

خلفية المشروع والمسئولين عنه

جنو أرك الإصدار 1 وتلا tla

توماس لورد هو أول من بدأ في بناء نظام جنو أرك والمسئول الأول عنه وبدأ في هذا المشروع عام 2001. الأمر المستخدم لتعديل مستودعات أرك كان tla اختصارا لتوماس لورد أرك. بدأ لورد المشروع كمجموعة من برامج الشل كبديل عن نظام CVS،.[2] وأصبح أرك جزءً من مشروع جنو في 2003.[3]

إنشق عن مشروع جنو أرك أكثر من مشروع مما أدى إلى تخلي شركة كانونيكال المحدودة عن مشروع باز Bazوتخلي والتر لاندري عن مشروع أركس ArX المنشقين كلاهما عن مشروع أرك. كلا المشروعين أثارا رد فعل عنيف: مشروع أركس نشأ نتيجة لخلاف حول أسلوب الإدارة وانتقد لورد بشدة أسلوب إعلان كانونيكال عن مشروع باز.[4]

أعلن لورد في أغسطس 2005 استقالته كمسئول عن مشروع جنو أرك وأوصى بتبني باز ليصبح مشروع جنو أرك الرئيسي،.[5] إلا أن هذا لم يحدث: تخلت شركة كانونيكال عن مشروع باز المنشق عن مشروع أرك لصالح مشروع بازار[6][7] المنفصل، وأعلنت الشركة في 2006 تخليها عن مشروع باز بعد الإصدار 1.5.[8] في أكتوبر 2005 أعلن أندي تاي عن قبول لورد ومؤسسة البرمجيات الحرة لعرضه بتولي مشروع جنو أرك،.[9] قام تاي بعد ذلك بدمج العديد من مزايا باز في تلا،[8] ولكنه أعلن في 2008 عن توقف العمل على مشروع تلا لأنه لم يعد قادرا على المنافسة مع أنظمة التحكم الأخرى.[1]

ريفك

ريفك كان نموذجا أوليا لنظام تحكم في تعديل البرمجيات انتوى توماس لورد أن يجعله الإصدار 2.0 من جنو أرك وصممه ليكون مختلفا اختلافا جذريا عن تلا ويستمد العديد من أفكار نظام جت Git.[10] أعلن لورد عن ريفك في يونيو 2005 ,[10] وصدرت النسخة التجريبية الأولى في يوليو[11] والأخيرة في أغسطس قبل إعلان لورد عن استقالته.[12] كان ريفك به 10 أوامر رئيسية فقط وانتوى لورد أن يزيل كل مجالات الأسامي namespacesالتقييدية والأساليب المعقدة في تسمية الملفات وانتوى زيادة السرعة.[11]

الإصدار التجريبي الأخير 0.0x2 من ريفك متاح[13] من عام 2008، وما زال لورد مهتما ببعض أفكار جنو أرك ولكنه لا يمتلك المصادر لاستكمال العمل في مشروع ريفك.[14]

الانتقادات

ربما كان أشد انتقاد وجه لمشروع جنو ارك هو صعوبة تعلمه حتى بالنسبة للمتمرسين في استخدام أنظمة إدارة إعداد البرمجيات SCM الأخرى، تحديدا جنو أرك به عدد ضخم من الأوامر وهذا قد يخيف المستخدمين الجدد، كما يمكن القول أن تصميم النظام يفرض بشدة أسلوب لورد الخاص في التحكم في تعديل البرمجيات.[15][16]

وينتقد آخرون جنو أرك لاستخدامه أساليب غريبة في تسمية الملفات ("FunkyFileNames") قد تؤدي إلى صعوبة استخدام الأسامي في السكربتات –بعض برامج الشل - وصعوبة نقل هذه البرامج للعمل على أنظمة أخرى غير نظام يونيكس، كما انتقد جنو أرك لبطئه الناتج عن رغبة مصمميه في تقليل تعقيد أكواده.[17]

انظر أيضًا

المراجع

  1. ^ أ ب Tai، Andy (28 مارس 2008). "Re: revc". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-09. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  2. ^ Moffit، Nick (1 نوفمبر 2004). "Revision Control with Arch: Introduction to Arch". لينكس جورنال. مؤرشف من الأصل في 2017-12-04. اطلع عليه بتاريخ 2008-06-18.
  3. ^ Lord، Tom (13 يوليو 2003). "GNU, doc foo, short-term plans, hacking suggestions, money". arch-users (Mailing list). مؤرشف من الأصل في 2016-03-03. اطلع عليه بتاريخ 2008-06-18. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  4. ^ Lord، Thomas (31 أكتوبر 2004). "community spirit". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-09. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  5. ^ Lord، Thomas (15 أغسطس 2005). "GNU Arch maintainership". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-05. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  6. ^ "Baz1x - Bazaar Version Control". 24 يوليو 2006. مؤرشف من الأصل في 2009-08-15. اطلع عليه بتاريخ 2008-01-17.
  7. ^ Arbash Meinel، John (26 يوليو 2006). "HistoryOfBazaar". مؤرشف من الأصل في 2009-02-26. اطلع عليه بتاريخ 2008-02-20. {{استشهاد ويب}}: الوسيط author-name-list parameters تكرر أكثر من مرة (مساعدة)
  8. ^ أ ب Collins، Robert (30 يونيو 2006). "releasing 1.5". bazaar-old (Mailing list). مؤرشف من الأصل في 2014-08-17. اطلع عليه بتاريخ 2007-06-16. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  9. ^ Tai، Andy (27 أكتوبر 2005). "Re: Good News about GNU Arch!". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-09. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  10. ^ أ ب Lord، Thomas (20 يونيو 2005). "arch 2.0 code base in progress". gnu-arch-dev (Mailing list). مؤرشف من الأصل في 2016-03-03. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  11. ^ أ ب Lord، Thomas (8 يوليو 2005). "GNU Arch 2.0 -- first source". gnu-arch-dev (Mailing list). مؤرشف من الأصل في 2016-03-03. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  12. ^ Lord، Thomas (1 أغسطس 2005). "Arch 2.0 release (revc.0.0x2)". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-05. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  13. ^ Wandrebeck، Laurent (26 مارس 2008). "revc". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-09. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  14. ^ Lord، Thomas (28 مارس 2008). "Re: revc". gnu-arch-users (Mailing list). مؤرشف من الأصل في 2019-10-09. اطلع عليه بتاريخ 2008-06-17. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  15. ^ Pool، Martin (21 يونيو 2004). "What's wrong with Arch?". مؤرشف من الأصل في 2012-06-20. اطلع عليه بتاريخ 2008-06-18.
  16. ^ Pool، Martin (26 سبتمبر 2004). "Tom Lord interview, and related things". مؤرشف من الأصل في 2012-06-20. اطلع عليه بتاريخ 2008-06-18. Earlier versions were very much bound into projects being run the way Tom wanted them: wierd file conventions, only committing from clean trees, and so on
  17. ^ Weimer، Florian (9 يونيو 2004). "Some Issues with GNU arch". مؤرشف من الأصل في 2017-10-21. اطلع عليه بتاريخ 2008-06-18.

وصلات خارجية