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

SVN server الجزء 1 : طريقة استخدام الـ


فى البوست السابق تحدثت بشكل عام عن ما يسمى بـ version control systems وتكلمت عن هذه الانظمة ومميزاتها واعطيت مجموعة امثلة ووعدت بانني سأكتب عن احدهم فى بوست مستقل ، اليوم سوف اتحدث عن كيفية استخدام ال SVN سيرفر على جهازك الشخصي وهو احد اهم ال Version Control systems واسهلهم ايضا كما سنرى بعد قليل.
ملحوظة : سيكون هذا المقال عبارة عن مجموعة الأسئلة والأجوبة فهذه الطريقة مريحة اكثر للفهم
اذا لقد عرفنا مميزات الـ RCS فى السابق وانه مفيد جدا فى حالات المشاريع الجماعية والشركات ..
فهل مفيد لشخص يعمل بمفرده ؟
الاجابة وبكل ثقة نعم ، كثير منا يعمل منفردا سواء كان يعمل كـ freelancer او يجرب مشاريع  وهو يتعلم tools جديدة او له startup ويقوم بالعمل منفردا مؤقتا ، فكثير منا قابلته المشكل التي ذكرتها فى المقال السابق
ما هي مميزات الـ SVN server ؟
سهل الاستخدم ، عملي ، مجاني ، يسهل عمل المبرمج او المطور دون الحاجة الى قت لفهمه فهو مفهوم جدا كما سنشرحه الأن ، لا يطبق مبدأ الكل او لا شئ All or nothing :)
كيف يتم عمل setup للـ SVN عندك على جهازك؟
نبدأ بالجزء العملي الأن ، اولى الخطوات قم بتنزيل نسخة OneClick وهي نسخة قديمة بعض الشئ ولكنها سهلة ومرنة كبداية وسوف نستعملها اليوم بفرض أن معظم الناس تستخدم نظام ويندوز اما عن اللينكس سوف يتم تغطيته ايضا فى مقالات قادمة باذن الله ، بعد ان يكتمل التنزيل قم بالتثبيت كأي برنامج ولكن اتبع التعليمات التالية:
  1. في أول شاشة من برنامج التثبيت اختر أين سيتم تصبيت ملفات الخادم server .
  2. مكان تثبيت المخزن (repository)، مثلاً (d:\svn) وهو المكان الذي سيستقر به ملفات مشاريعك و ايضا الـ versions الخاصة بها.
  3. اسم المستخدم وكلمة السر لاستخدام  svn وهي افتراضيا ان لم تضعهم تستخدم اسم المستخدم وكلمة السر الخاصة بالويندوز.
  4. مشروع افتراضي (Project)، اختر تجاوز هذه الخطوة (skip this step) ، ثم next
  5. مكان تثبيت TortoiseSVN وهي مجموعة الأدوات للتعامل مع SVN من خلال واجهة الويندوز أو سطر الأوامر ، اختر اي مكان مناسب وليكن فى C://svn
  6. أخيراً Restart عشان تقدر تستعمله .. وده انت هتنفذه وترجع تاني هنا عشن نجرب مع بعض  باقي التعليمات عمليا وفي وقتهاعلى طول .. منتظرك ;)
بعد أن انتهيت من التسطيب على الويندوز لاحظ معي جيدا ان ال shortcut menu أصبحت كالتالى (عند الضغط بالزر الايمن للماوس فى أي مكان) .. إذا كانت لديك أصبحت تحتوي على العنصرين الجديدين .. مبروك لقد تم التثبيت بنجاح :)
بعض الكلمات المستخدمة فى التعامل مع الـ SVN لابد من التعامل معها :
  • Import : وهي تعني اضافة الى المخزن repository .
  • Trunk : هو جزع المشروع او النسخة الاساسية من المشروع
  • Repository : المخزن او امكن الذي يكون به ال versions المختلفة من المشروع ويمكن التحكم بها عن طريق ال SVN سيرفر .
  • Check-out : هذا يعنى أخذ نسخة من المشروع او جزء منه خارج من النسخة الاصلية المخزمة فى ال repository .
  • merge : عملية الدمج بين نسختين من المشروع .
  • patch : وهي ميزة غير عادية تقدمها هذه الانظمة اي ان احد افراد فريقك قد يواجه مشكلة فى نسخة المشروع التي معه ويخبرك تستطيع انت عمل patch فيه حل المشكلة وارسال ال patch file فيقوم هو بعمل apply patch فيتم حل المشكلة بدون نقل الكود بينكم :)
  • branches : وهي تعتبر بمثابة ال versions ولكن بتعبير الشجر فهي فرع من الجزع الرئيسي Trunk .
كيفية التعامل مع السيرفر وارسال نسخة المشروع الرئيسية Trunk ؟؟
سوف افترض اننا نتعامل مع مشروع ويب بلغة php وانا بالطبع اضع المشروع بالكامل فى مجلد Folder يحتوي كل ملفاته واما عن مكان المخزن او الـ repository والذي سوف يحتوي على النسخة الرئيسية من المشروع لاحظ انه بامكانك انت تغيير هذه الاماكن طبقها انت على حسب العناوين عندك وفي الحقيقة المفترض فى هذا المكان يتم وضع العنوان عموما والذي من الممكن ان يكون web server.
سوف نرجع لنقطة الصفر ، الان ال repository فارغ تماما وتريد اضافة مشروع اليه لكي يكون هذا الجزء المضاف هو النسخة الرئيسية من المشروع trunk .. إذا نذهب الى الفولدر الخاص بالمشروع فى مكانه ونضغط عليه right click كما هو ظاهر بالصورة :
سوف يظهر لنا قائمة كما هو موضح نختار منها Import الموضحة باللون الازرق لاخذ نسخة منها الى مكان المخزن وسوف تظهر لنا النافذة التالية :
لاحظ جيدا استخدام file:/// وذلك لانه على جهازك الشخصي انما حين استخدام web server سيتم استبدالها ب http:// ولابد مع اي عملية يتم تنفيذها ارفاق رسالة تدل عما فعلته انت بها كما انا موضح first import ثم نضغط ok فيتم عملية نقل الملفات الى مكان المخزن ولكنها لم تتم كليا وفى انتظار أمر هام لاتمام المهمة سنراه بعد الخطوة التالية :
الان وصل الامر بإضافة هذا الفولدر وما يحتويه من ملفات لسيرفر  الـ SVN ولكن الامر قيد التنفيذ فنرى الملفات والفولدرات تحول ايقوناتها الى الشكل التالي :
مما يستدعي اتمام الامر بعمل commit للتغييرات وهي اضافة مشروع للمخزن ويتم عمله بالضغط على الفولدر الذي يحتوي على المشروع الذي حدث له import ثم SVN commit لتظهر لنا النافذة التالية ، يعرض بها الملفات التي سيتم عمل commit لها وهي ملفات المشروع بالكامل مع اعطاء ايضا رسالة بما فعلت :
لاحظ انه بامكانك اختيار بعض الملفات وترك الأخر كما تحب :) والان نفتح فولدر المشروع فى ال repository ونراه كل فولدر او ملف فيه يحمل علامة صح خضراء كما نرى دليل على انتماء هذا لمجلد لى revision control system وهو SVN server او ال Supversion server :
مبروك لقد أنشأت Trunk لمشروعك ويمكنك الان استخدامه وعمل Checkout كما تحب فى اي مكان :)
إن شاء الله فى الجزء القادم نتناقش حول كيفية سحب نسخة لعمل version من المشروع checkout وكيفية التعديل في المشروع وتطبيق التعديل على النسخة الرئيسية وعمل merge وكيفية استرجاع اخر فيرجن بسهولة وعملية الاسترجاع لكل ال history الخاص بالمشروع كاملا وايضا سيكون هناك بعض التلميحات على حالات اخرى فى الاستخدام وانتظر أرائكم واستفساراتكم حول الموضوع .. أراكم فى الجزء الثاني من الموضوع ان شاء الله :)
المصدر:http://www.medhatdawoud.com/svn-server-%D8%A7%D9%84%D8%AC%D8%B2%D8%A1-1-%D8%B7%D8%B1%D9%8A%D9%82%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D9%80/

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