السبت، 17 مارس 2012

Revision Control Systems مدخل إلى


انهاردة هاتكلم باختصار عن حاجة مهمة جدا قد يغفل عنها البعض ولكنها فى غاية الاهمية ، كتير مننا بيحاول انه يقوم بعمل مشروع مع اصحابه سواء فى الكلية او بره وبيكون فيه مشاكل كتير موجودة غالبا بسبب ان واحد فلاشته عليها فيروسات مثلا او انه نسي يجيب الجزء اللى كان بيكود فيه او ان المشروع كله بالكامل كان عند واحد وهارده اتفرمط قبل المناقشة بيوم :D كل دي مشاكل حقيقية واعرف ناس كتير حصل معاهم اخر موقف ده ، طيب تعالوا نتخيل موضوعين ..الأول ان فيه فريق عمل شغال فى مشروع والفريق بيتكون من 100 developers ويوميا طبعا المشروع بيتوزع اجزائه كل واحد فى اللى شغل فيه وفى نهاية اليوم بيتجمع المشروع كله تاني .. اعتقد ان الفريق ده محتاج فريق تاني معاه كل شغله تجميع المشروع وتركيبه يوميا … اما الثاني انه كتير مننا developers بيحبوا يجربوا يعدلوا جزئية معينة فى مشروع معين او يعنى يعمل new version وممكن لو عمل حاجة غلط يبوظ المشروع كله فبيضطر انه ياخد نسخة من المشروع ويسميها اسم تاني ويشتغل عليها واحيانا بتحصل لغبطة فى الطريقة دي بين الفيرجنز الكتير لانه مش دايما بيطابق كل تعديل فى اخر فيرجن بالفيرجن الرئيسي … طيب كل دي مشاكل حلها انهاردة هاطرحه بشكل عام فى استخدام Revision Control Systems اللى بيستخدمها شركات كتير جدا لتنظيم العملية الى طرحتها دلوقت بسهولة ، تعالوا بقى نتعرف عليه اكتر :)
ما هي انظمة التحكم فى الاصدارات (Revision Control Systems) ؟
أولا بيطلق عليها ايضا version control systems وهي ببساطة أنظمة صُممت خصيصا لحل المشاكل التى تم طرحها سالفا بسهولة وتمكين المطور من عمل اكثر من version لمشاريعه وامكانية دمجها او التراجع لفيرجن اقدم ومن الاهداف الاساسية تمكين التيم ليدر من مراجعة الكود كله والتعديل عليه او حتى مسحه وسهولة ضم كل الملفات الخاصة بالمشروع من كل مكان بسهولة حتى لو كل شخص فى المشروع من قارة مختلفة فالجميع يتعامل مع server عليه الملفات وسوف نرى كيف يتم التعامل مع هذا ال server ان شاء الله.
كيف تتم العملية :
فى البداية يتم عمل سحب لل source code الخاص بالمشروع عندك عن طريق اوامر تختلف من RCS الى اخر وتسمى هذه العملية بعمل check out ثم بعد ذلك تقوم بتعديل الاجزاء اللتي تعمل بها وفى النهاية يتم عمل commit للتغيرات التي حدثت فيكون اخر تعديل له version تختلف عن التي تسبقه وهناك فى ال server امكانية لعرض ال history واسترجاع اي فيرجن تريده مهما كان ومعرفه من اضاف التعديل ويمكن معرفة ما تم اضافته عن طريق عمل compare changes ثم يتم تخزين اخر فيرجن.
لاحظ معي انه يمكن ان يكون هناك اثنين يعدلان فى نفس الملف وفي هذه الحالة يحدث collision ولكن ال RCS ينبهك انه هنك نسخة تم تعديلها بخلاف التي تمتلكها الان ، فيمكنك من رؤية ما عدله زميلك وعمل merge لتغييراتك وتغييراته ثم عمل commit فى النهاية.
امثلة على ال RCS ومتي يتم استخدامها:
لاحظ ان كل RCS يدعم مجموعة من اللغات معينة تمكنك من استخدامه بكفاءة فكل شخص يستطيع اختيار الانسب له حسب عمله ولاحظ ايضا ان منها ما هو مجاني ومنها ما هو غير مجاني وسوف اعرض بعضها الان واضع بعض الروابط لتتمكن من البحث فيها اكثر كما تحب :)
وهي خاصة بمحبي السي شارب
وهي مخصصة لكل من مطوري البايثون والسي
وهي لمطوري السي و كتبها linus Travalds :)
وغالبية المشاريع ال open source تفضل العمل به وهو سهل الاستخدام ومجاني
وغيرهم الكثير والكثير تستطيع البحث بنفسك وسوف تعرف الكتير جدا عن هذه الانظمة الممتازة ، ان شاء الله فى البوست القادم سوف اتناول احدهم بالشرح كيفية استخدامه لو كتب الله لنا عُمر :)
مصادر و روابط مساعدة لتقرأ أكثر:

ليست هناك تعليقات: