جنو أرك
المحتويات
بدايةً، جنو أرك في مجال الحوسبة هو نظام للتحكم الموزع في تعديل البرمجيات وجزء من مشروع جنو ويخضع لرخصة جنو العمومية. يستعمل النظام في تتبع التعديلات التي تضاف لشجرة الكود source tree ومساعدة المبرمجين على دمج أو التعامل مع التعديلات التي يقوم بها الكثير من الأشخاص في أوقات مختلفة. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
وفي هذا الصدد، منذ عام 2009 توقفت عملية تطوير نظام جنو أرك فيما عدا إصلاح الثغرات الأمنية ولا يُنصح باستخدامه.
استخدام مجموعات التعديلات changesets
إضافةً إلى ذلك، يتتبع نظام أرك مجموعات التعديلات – المشابهة للباتشات patches - بدلا من تتبع الملفات بشكل منفصل (كما يفعل CVS). كل مجموعة تعديلات تصف الفرق بين شجرة كود source tree وأخرى، لذا يمكن استخدام مجموعة التعديلات للوصول من نسخة إلى أخرى. يُنصح المطورون بإجراء عملية تعديل واحدة لكل خاصية أو إصلاح عيب bugfix.
التعديلات الذرية Atomic commits
ومن جهة أخرى، إما أن تنفذ عملية التعديل بالكامل أو لا تنفذ على الإطلاق. يجب أن تكون شجرة الكود سليمة قبل بدء أي عملية تعديل ولا ترى التعديلات إلا بعد اكتمالها، إن حدثت مقاطعة لهذه العملية تبقى التعديلات خفية ثم يتم التراجع عن عملية التعديل بأكملها قبل بدء أي عملية جديدة، تحول هذه الطريقة دون فساد أرشيف الكود والنسخ السليمة للمستعملين الآخرين.
الانتقادات
- انظر كذلك
- نظام تحكم بالمراجعات
- المراجع
- وصلات خارجية
- The arch wiki
علاوةً على ذلك، وينتقد آخرون جنو أرك لاستخدامه أساليب غريبة في تسمية الملفات ("FunkyFileNames") قد تؤدي إلى صعوبة استخدام الأسامي في السكربتات –بعض برامج الشل - وصعوبة نقل هذه البرامج للعمل على أنظمة أخرى غير نظام يونيكس، كما انتقد جنو أرك لبطئه الناتج عن رغبة مصمميه في تقليل تعقيد أكواده.
ومن ناحية أخرى، ربما كان أشد انتقاد وجه لمشروع جنو ارك هو صعوبة تعلمه حتى بالنسبة للمتمرسين في استخدام أنظمة إدارة إعداد البرمجيات SCM الأخرى، تحديدا جنو أرك به عدد ضخم من الأوامر وهذا قد يخيف المستعملين الجدد، كما يمكن القول أن تصميم النظام يفرض بشدة أسلوب لورد الخاص في التحكم في تعديل البرمجيات.
ريفك
ومن ناحية أخرى، ريفك كان نموذجا أوليا لنظام تحكم في تعديل البرمجيات انتوى توماس لورد أن يجعله الإصدار 2.0 من جنو أرك وصممه ليكون مختلفا اختلافا جذريا عن تلا ويستمد الكثير من أفكار نظام جت Git. أعلن لورد عن ريفك في يونيو 2005 , وصدرت النسخة التجريبية الأولى في يوليو والأخيرة في أغسطس قبل إعلان لورد عن استقالته. كان ريفك به 10 أوامر رئيسية فقط وانتوى لورد أن يزيل كل مجالات الأسامي namespacesالتقييدية والأساليب المعقدة في تسمية الملفات وانتوى زيادة السرعة.
ومن جهة أخرى، الإصدار التجريبي الأخير 0.0x2 من ريفك متاح من عام 2008، وما زال لورد مهتما ببعض أفكار جنو أرك ولكنه لا يمتلك المصادر لاستكمال العمل في مشروع ريفك.
خصائصه
إضافةً إلى ذلك، لمحاكاة أسلوب عمل نظام التحكم المركزي بإمكان كبير المطورين إتاحة الوصول إلى شل shell الخادم (SSH) أو التصريح بالتعديل (FTP، SFTP، WebDAV) على الخادم مما يسمح للمستعملين المصرح لهم بالقيام بالتعديلات على الخادم المركزي، ولكن في الغالب هناك ديكتاتور يتولى عملية دمج تعديلات المشاركين في المشاريع التي تدار بواسطة جنو أرك.
إضافةً إلى ذلك، غير مركزي يعني أنه لا داعي لوجود خادم مركزي يحتاج المطورون لتصريح بالدخول عليه حتى يشاركوا في البرنامج المراد تعديله. كما هو الحال في الأنظمة الأخرى يتم تخزين نسخة كاملة من المشروع للقراءة فقط على مستودع رسمي سواء باستخدام HTTP أو FTP أو SFTP ثم يسمح للمطورين بإضافة تعديلاتهم ونشرها في أرشيف (مستودع) عام خاص بهم حتى يتمكن كبير المطورين من دمج مجموعات التعديلات changesets يدويا في المستودع الرسمي.
يحتوي جنو أرك على الكثير من الخصائص الأخرى:
من جانب آخر، بما أن النظام موزع وغير مركزي فكل نسخة معدلة باستخدام أرك تحصل على تعريف ID لا يتكرر على مستوى العالم، يمكن استخدام هذا التعريف في بيئة العمل الموزعة لدمج التعديلات بسهولة أو انتقاء تعديلات معينة من مصادر مختلفة تماما.
إعادة التسمية
تتبع البيانات الوصفية metadata.
وعلى صعيد آخر، يمكن إعادة تسمية كل الملفات والمجلدات بسهولة، ويستعمل معهم تعريفات فريدة بدلا من الأسامي، بالتالي يمكن الاحتفاظ بتاريخ كل العمليات ودمج التعديلات بدون أي مشاكل حتى لو اختلفت أسامي الملفات في الأفرع.
في هذا الإطار، يتم تتبع تصاريح الملفات. ويدعم النظام الوصلات الرمزية symbolic links ويتتبعها كما يتتبع الملفات والمجلدات.
خلفية المشروع والمسئولين عنه
توقيعات مشفرة
من جانب آخر، تحفظ مجموعة التعديلات بمصاحبة هاش لمنع أي فساد محتمل للملفات. باستخدام برنامج خارجي لتوقيع الملفات (مثل أو أي برنامج مماثل لبي جي بي) يمكن توقيع ملفات الهاش كذلك لمنع أي تعديل غير مسموح به إذا تعرض الأرشيف للاختراق.
دمج احترافي
من جانب آخر، نظرا لاحتفاظ النظام بسجلات دائمة لكل النسخ الأصلية والنسخ المدمجة تستطيع عملية الدمج معرفة أي فرع يحتوى أي باتش تعديلات وبإمكانها القيام بعملية دمج من ثلاثة مصادر مختلفة مبنية على نسخة أصلية واحدة.
تفرع سهل
من جانب آخر، عملية التفرع branching تتسم بالكفاءة ويمكن أن يدخل فيها عدد من الأرشيفات المختلفة. ببساطة يعلن الفرع (أو «تاج» tag) عن النسخة الذي جاء منها وتستمر عملية التطوير من هنا.
جنو أرك الإصدار 1 وتلا tla
وعلى صعيد آخر، أعلن لورد في أغسطس 2005 استقالته كمسئول عن مشروع جنو أرك وأوصى بتبني باز ليصبح مشروع جنو أرك الرئيسي،. إلا أن هذا لم يحدث: تخلت شركة كانونيكال عن مشروع باز المنشق عن مشروع أرك لصالح مشروع بازار المنفصل، وأعلنت الشركة في 2006 تخليها عن مشروع باز بعد الإصدار 1.5. في أكتوبر 2005 أعلن أندي تاي عن قبول لورد ومؤسسة البرمجيات الحرة لعرضه بتولي مشروع جنو أرك،. قام تاي لاحقًا بدمج الكثير من مزايا باز في تلا، ولكنه أعلن في 2008 عن توقف العمل على مشروع تلا لأنه لم يعد قادرا على المنافسة مع أنظمة التحكم الأخرى.
علاوةً على ذلك، إنشق عن مشروع جنو أرك أكثر من مشروع مما أدى إلى تخلي شركة كانونيكال المحدودة عن مشروع باز Bazوتخلي والتر لاندري عن مشروع أركس ArX المنشقين كلاهما عن مشروع أرك. كلا المشروعين أثارا رد فعل عنيف: مشروع أركس نشأ نتيجة لخلاف حول أسلوب الإدارة وانتقد لورد بشدة أسلوب إعلان كانونيكال عن مشروع باز.
من جهة ثانية، توماس لورد هو أول من بدأ في بناء نظام جنو أرك والمسئول الأول عنه وبدأ في هذا المشروع عام 2001. الأمر المستعمل لتعديل مستودعات أرك كان tla اختصارا لتوماس لورد أرك. بدأ لورد المشروع كمجموعة من برامج الشل كبديل عن نظام CVS،. وأصبح أرك جزءً من مشروع جنو في 2003.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟