RSS

تنصيب و إعداد مخدم CVS لإدارة الشيفرة المصدرية

19 جانفي

كنا قد استعرضنا في تدوينة سابقة نظام CVS لإدارة الشيفرات المصدرية من وجهة نظر زبون النظام، حيث تناولنا كيفية استثماره باستخدام برمجية TortoiseCVS إحدى أبسط الأدوات المجانية المتاحة لأنظمة التشغيلWindows، وقد أوضحنا في تلك المقالة كيفية الإتصال مع مخدم Sourceforge.net لاستخراج الشيفرة المصدرية لأحد المشاريع البرمجية وقد كان Ar-PHP على سبيل المثال.

تتألف منظومة CVS من مكنز Repository يستضاف على مخدم ما، وتقوم برمجيات الزبون بالإتصال بذلك المكنز لاستخراج Checkout الشيفرة المصدرية المطلوبة من ذلك المكنز والحصول على نسخة محلية منها عادة ما تدعى بصندوق الرمل Sandbox، عند ذلك تستطيع التعامل مع تلك الشيفرة المصدرية بأسلوبك وأدواتك المعتادة دون الحاجة إلى البقاء على إتصال مع المكنز على جهاز المخدم. بعد الإنتهاء من تنفيذ التعديلات التي ترغب بها وإتمام إختبار صحتها، تستطيع الإتصال بمخدم CVS من جديد باستخدام ذات برمجية الزبون لتقوم بعملية إيداع Commit تلك التعديلات ضمن المكنز من جديد، فتصبح جزءا من مكوناته ومتاحة بالتالي للآخرين. يجدر التنويه هنا إلى أن عملية الإيداع تقوم بدمج التعديلات الآتية من عدة مصادر (مبرمجين)على عكس نموذج القفل المعتاد والذي يسمح لمبرمج وحيد فقط بإجراء التعديلات على الشيفرة المصدرية في كل مرة.


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

دعونا بداية نتحدث عن فوائد استخدام نظام CVS، وبالتالي الأسباب التي ستدفعك لتنصيب مخدم CVS محلي وإعداده، فإن لم تجد في المقام الأول أي قيمة مضافة إلى بيئة العمل التي تستخدمها حاليا، فلا حافز حقيقي يدفعك لتجربتها وتنصيبها

إن الوظيفة الأساسية لنظام CVS هي السماح لعدة مطورين بالعمل بشكل مستقل على ذات مجموعة الملفات، ليتم لاحقا دمج تعديلاتهم في المكنز المركزي، وبالتالي يعد هذا النظام أحد المفاتيح الأساسية لنجاح عمل الفرق البرمجية وواحداً من المعايير العالمية لإدارتها، ولا يقتصر دور نظام CVS على توفير مكنز مركزي يتيح توزيع نسخ عن الشيفرة المصدرية لأعضاء فريق العمل، ومن ثم دمج التعديلات التي يجرونها في ذلك المكنز مجددا، بل يسمح لك أيضاً بتتبع من قام بإجراء التعديلات، وأين تمت تلك التعديلات، ومتى تم إجراؤها. كذلك يمكنك معرفة لماذا أجريت تلك التعديلات في حال إلتزم المبرمجون الذين يستثمرون هذا النظام بإضافة تعليقات مفيدة مع كل عملية إيداع يقومون بها. وهذه ميزات هامة جدا، خصوصا لمن يقومون بإدارة الفرق البرمجية ومراقبة عمل أفرادها.

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

أما إن لم يكن لديك فريق عمل يقوم بتطوير برمجية ما، وأردت أن تتعامل مع نظام CVS على أنه مجرد بديل لعملية النسخ الإحتياطي Backup، فستحصل على جملة من المزايا الإضافية منها أن نظام CVS يقوم بحفظ كافة الإصدارات بدءا من تاريخ إستثمار النظام، على عكس أسلوب النسخ الاحتياطي التقليدي، حيث نتخلص عادة من النسخ القديمة بعد فترة. كذلك يستطيع نظام CVS التراجع عن أي من التعديلات التي تمت خلال أي لحظة زمنية سابقة بسهولة ويسر، متيحا لنا إمكانية استرجاع حالة الملفات كما كانت في أي تاريخ سابق.

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

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

دعونا الآن ننتقل إلى الشق العملي من هذه المقالة، ولنتحدث عن كيفية تنصيب وإعداد مخدم CVS محلي كما سبق وأن وعدناكم، حيث سنستخدم نسخة CVSNT، وهي واحدة من نسخ مخدمات CVS المجانية التي تعمل بدورها على أنظمة Windows للتشغيل، ويمكن الحصول على آخر إصدار منها من موقع http://www.cvsnt.org. لنتحدث بداية عن المتطلبات التي يجب توفرها في الحاسب الذي سيتم تنصيب مخدم CVS عليه، حيث يجب أن يمتلك قرصا صلبا بتنسيق NTFS، ولا يشترط أن يكون ذلك القرص هو القرص الإقلاعي، بل هو المكان الذي ستحفظ فيه ملفات المكنز ومجلداته، لذلك يجب أن تتوفر فيه مساحة كافية قياسا لحجم ما لديك من معلومات وشيفرات مصدرية تريد إيداعها في هذا المكنز. أما بخصوص نظام التشغيل فيجب أن يكون Windows 2003 Server أو ما هو أحدث من أنظمة تشغيل المخدمات التي تطرحها شركة Microsoft، كما يمكن تنصيب المخدم على جهاز عامل بنظام التشغيل XP Professional Edition (لكن ليس XP Home Edition)، لكن عليك في هذه الحالة إيقاف ميزة مشاركة الملفات البسيطة (وهي ميزة تأتي مفعلة تلقائيا للإبقاء على التوافق مع إصدارات Windows السابقة)، كما هو موضح في الشكل التالي:

قبل البدء بعملية التنصيب، عليك القيام ببعض الخطوات التحضيرية، حيث عليك إنشاء مجلدين ضمن القرص المهيء بتنسيق NTFS، أولهما للمكنز ذاته فيما الثاني سيستخدم للملفات المؤقتة التي ستستعمل من قبل النظام. من الهام هنا التنويه إلى أنك لا تستطيع استخدام مجلد الملفات المؤقتة الخاص بنظام التشغيل Windows ذاته، او أي مجلد آخر يتفرع عن “Documents and Settings” نظرا لوجود قيود على سماحيات وصول المستخدمين إليها!

كذلك يجب تحاشي وجود الفراغات ضمن مسار كل من هذين المجلدين. أخيرا يجب إضافة المستخدم SYSTEM إلى قائمة الأمان الخاصة بمجلد الملفات المؤقتة، وإعطاءه سماحيات كاملة (تذكر أن المستخدم SYSTEM لا يعد جزءا من المستخدم Everyone).

بعد إتمام جملة هذه التحضيرات، يمكنك الآن البدء بعملية تنصيب المخدم، والتي تتم بخطوات سهلة سلسة لا تختلف عن عملية تنصيب أي برمجية أخرى، ولا يتعدى دورك في هذه المرحلة النقر على زر “التالي” حتى إنتهاء مرحلة التنصيب. بعد ذلك قم بإعادة تشغيل المخدم، وإلا فستحصل على خطأ Repository initialization failed عند محاولتك إنشاء مكنز، وهو ما سنقوم به في الفقرات التالية.

بعد إتمام عملية التنصيب، علينا البدء في ضبط إعدادات النظام ليعمل بالشكل المطلوب منه، لذا قم بالإنتقال إلى لوحة تحكم نظام التشغيل حيث ستجد هناك عنصر جديدا وقد أضيف إليها وله أيقونة بشكل سمكة خضراء وباسم CVSNT Server، قم بالنقر المزدوج على تلك الأيقونة لتفتح لوحة التحكم الخاصة بمخدم CVS، كما هو موضح في الشكل التالي:

سنقوم فيما يلي بضبط إعدادات مخدم CVS ونبني أول مكنز محلي لنا، ومن ثم نستعرض كيفية الإتصال به من برمجيات زبون CVS. بداية عليك إيقاف CVS Service قبل الإنتقال إلى أي من خطوات الإعداد التالية (ليست هنالك حاجة لإيقاف خدمة قفل CVSNT لمتابعة عملية الإعداد طالما أن خدمة CVSNT ذاتها قد تم إيقافها).

بعد ذلك ننتقل إلى الصفحة الخاصة بإعدادات المكنز “Repository configuration”، ومن ثم ننقر على زر “Add” لإضافة مكنز جديد، سيظهر لنا حينها صندوق حوار لإدخال إعدادات المكنز الجديد. لتحديد موقع المكنز، إنقر على زر الإستعراض “…” وحدد المجلد الذي سبق وأن أنشأناه على قرص NTFS خلال مرحلة الخطوات التحضيرية، من ثم قم بإنشاء مجلد جديد داخله والذي سيكون مكنزك الأول (لاحظ أن مخدم CVS واحد يمكنه إدارة أكثر من مكنز). لا ينصح باعتماد التسمية التي يقترحها البرنامج عليك في حقل Name لأنها تتضمن كامل المسار، بل يمكن أن تكتفي بتسمية تتضمن إسم المجلد الذي أنشأته للتو إضافة إلى رمز / يسبقه كما هو موضح في الشكل التالي (تذكر أنه لا ينصح بوجود أي فراغات ضمن مسار ذلك المجلد).

عند النقر على زر “OK” سوف يسألك النظام إن كنت تريد حقا تهيئة مكنز جديد، فأجب بنعم، وحينها ستجد المكنز الجديد وقد أضيف. سننتقل الآن إلى الصفحة الخاصة بضبط إعدادات المخدم ذاته وهي صفحة Server Settings. إن كل ما تحتاج إلى ضبطه في هذه الصفحة هو مكان وجود المجلد المخصص للملفات المؤقتة والذي سبق وأن أنشأناه خلال مرحلة الخطوات التمهيدية التي سبقت عملية التنصيب. إلى هنا ونكتفي من عملية الإعداد، فقد أنجزنا إلى الآن الحد الأدنى الذي يسمح لنا بتشغيل مكنزنا الأول دون الحاجة إلى الخوض في المزيد من التفاصيل التي لا تتسع لها سطور هذه المقالة، لذا إنقر على زر “Apply” لتطبيق ما قمنا به من إعدادات (إياك أن تنسى هذه الخطوة!)، ومن ثم نعود إلى الصفحة الأولى (صفحة “About”) لنعيد تشغيل مخدم CVS من جديد بعد أن قمنا بإيقافه عن العمل ريثما نجري عملية ضبط الإعدادات هذه. بعد ذلك قم بإعادة تشغيل الحاسوب مجددا (وهو أمر ضروري في حال أردت التواصل مع مخدم CVS من خلال سطر الأوامر).

لا تزال أمامنا خطوة وحيدة وهي تتعلق بضبط الجدار الناري Firewall الخاص بنظام التشغيل Windows للسماح بتمرير إستدعاءات مخدم CVS، للقيام بذلك عليك الذهاب إلى لوحة التحكم الخاصة بنظام التشغيل والنقر على أيقونة الجدار الناري لضبطها، بعد ذلك إنتقل إلى صفحة الاستثناءات “Exceptions” ومن ثم إنقر على زر إضافة منفذ “Add port”، أدخل CVSNT في حقل التسمية، و 2401 كرقم للمنفذ المستخدم الذي أنت بحاجة إليه، وحدد نوعه على أنه يستخدم بروتوكول TCP ثم أنقر على زر “OK” وتأكد من تشغيل هذا الاستثناء الذي أضفناه للتو، إنظر الشكل التالي لمزيد من الإيضاح:

في الختام، للإتصال بهذا المخدم المحلي الذي قمنا بتنصيبه وإعداده خلال فقرات هذه المقالة، عليك استخدام الإعدادات التالية:

  • Protocol: ويحدد البروتوكول الذي سيتم استخدامه عند مخاطبة مخدم CVS، في هذه الحالة عليك إختيار البروتوكول Windows Authentication-sspi والذي يستخدم ذات حسابات شبكة Windows المحلية، وبالتالي لا داعي لإدخال إسم المستخدم أو كلمة السر.
  • Server: وهو عنوان الحاسوب الذي يستضيف مخدم CVS، وفي حالتنا هذه يمكن أن يكون ذات الحاسوب الذي تعمل عليه، وحينها تستخدم القيمة localhost أو عنوان IP التالي 127.0.0.1 حيث يشير كلاهما إلى ذات الحاسب المحلي الذي تعمل من خلاله، أما إن قمت بعملية تنصيب وإعداد مخدم CVS على جهاز آخر ضمن الشبكة المحلية، فعليك وضع الإسم الشبكي لذلك الحاسوب أو عنوان IP الخاص به في هذا الحقل.

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

 

الأوسمة: ,

2 responses to “تنصيب و إعداد مخدم CVS لإدارة الشيفرة المصدرية

  1. Jnom

    26 مارس 2012 at 1:11 مساءً

    السلام عليكم
    مقالة مميزة كالعادة
    لكن وددت لو تلقي نظرة على نظام GIT من لينيس تورفالدز
    و github.com , و هو نموذج جد ناجح بدمجه وظائف الشبكات الاجتماعية…

    الموقع الرسمي: http://git-scm.com
    فديو يتحدث فيه لينوس تورفالدس عن نظامه git http://www.youtube.com/watch?v=4XpnKHJAok8

    تحياتي..

     
    • خالد الشمعة

      26 مارس 2012 at 2:18 مساءً

      سمعت عنه الكثير لكني صراحة لم أجربه قط ولم أعتد أن أكتب عن شيء لم أجربه بنفسي، شكرا على النصيحة التي غمرتني حماسا لاستطلاعه واستكشاف مزاياه ونقاط قوته

       

أضف تعليق