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

سنفترض أن النظام الذي تعمل عليه هو الويندوز، وسنستخدم النسخة السهلة (OneClick) على الرغم من أنها قديمة بعض الشيء ولكنها تعمل بشكل جيد ومناسبة لنا كبداية، بعد اكتمال التحميل إبدأ بالتثبيت:
- في أول شاشة من برنامج التثبيت اختر أين سيتم تصبيت ملفات المخدم (d:\programfiles\svn_server)
- مكان تثبيت المخزن (repository)، مثلاً (d:\svn)
- اسم المستخدم وكلمة السر لاستخدام svn
- مشروع افتراضي (Project)، اختر تجاوز هذه الخطوة (skip this step)
- مكان تثبيت TortoiseSVN وهي مجموعة الأدوات للتعامل مع SVN من خلال واجهة الويندوز أو سطر الأوامر
- أخيراً وليس آخراً اختر إعادة التشغيل الآن كي تتمكن من استخدام هذه الخدمة (احفظ هذه الصفحة قبل إعادة التشغيل كي تعود إليها
)
في البداية سنتعرف إلى بعض المصطلحات:
trunk وهو الجذع الرئيسي أي النص المصدري الكامل لمشروعك
branch فرع، أي الفرع الذي تنشئه من الجذع لإصلاح خطأ ما أو إضافة ميزة حيث يعتمد مفهوم أنظمة التحكم بالإصدارات على هذا، أي لاتجري التعديلات على الجذع الرئيسي مباشرة بل على فرع جديد وبعد انتهاءك من التعديلات تدمج الفرع إلى الجذع الرئيسي.
commit أو checkin أي تنفيذ التعديلات
checkout سحب نسخة من المشروع للعمل عليها
مازال أغلبنا لحد الآن يعمل على مفهوم التعديل على الجذع الرئيسي مباشرة، أي على النص المصدري بشكل مباشر، ففي حال حدث خطأ ما (وغالباً مايحدث) فيسظهر مباشرة على الموقع أو التطبيق. وفي هذه الحالة عليك أن تسرع لتقوم بإصلاح هذا الخطأ وأيضاً يجب أن تنتبه بأن لاتحدث أخطاء أخرى أثناء تصحيح هذا الخطأ. أما في حال استخدامك لمفهوم الجذع والفروع، فستقوم بإنشاء فرع جديد من الجذع الرئيسي لتقوم بإصلاح الأخطاء عليه وإضافة الميزات وبعد التأكد من عمله بشكل كامل تقوم بدمج هذا الفرع مع الجذع الرئيسي.
تذكر دائماً وأبداً ألا تستخدم نظام تحكم بالإصدارات فيه إنشاء ودمج الفروع أمر صعب، فهذا يجعل حياتك البرمجية معقدة أكثر! نظام التحكم بالإصدارات وكتابة الاختبارات (إن شاء الله لها تدوينات لاحقة كي نتعرف إلى هذا المفهوم الرائع) هما أساس المبرمج الماهر في هذه الأيام.
والآن مباشرة بعد هذه المقدمة نذهب إلى جولة سريعة ونبدأ بمشروع تجريبي:
- ننشىء مجلد لمشروع تجريبي اسمه (svn_test) داخل المخزن (في حالتي مسار المخزن هو d:\svnrepos)، وداخل هذا المجلد (svn_test) ننشىء هذه المجلدات (trunk, branches, tags).
- نضغط زر يمين على مجلد svn_test ونختار Import

- نختار مسار الجذع الرئيسي في هذا المشروع التجريبي (لاتنسى file:// لأننا نعمل على الجهاز المحلي، بينما لو كنت تعمل على شبكة تضع http://)

- ستظهر لنا رسالة تأكيد بأن العملية قد تمت:

- تمت عملية استيراد المشروع إلى مخزن svn والآن علينا أن نبدأ بتطوير هذا المشروع ولذا نحتاج نسخة منه، سنقوم بعمل checkout لهذا المشروع إلى مجلد www أو localhost الذي نقوم بتطوير مشاريع الويب فيه بالعادة، توجه إلى المجلد www مثلاً واضغط زر يميني عل مساحة فارغة فيه واختر checkout

- سيتم إنشاء مجلد للمشروع في حال لم يكن هناك واحد، وسيتم استيراد الملفات والمجلدات إليه (في حالتنا لايوجد ملفات لحد الآن بل فقط المجلدات الثلاثة الفارغة)، ستلاحظ وجود أيقونة خضراء فيها إشارة “صح” أي أن النسخة الحالية من المشروع لاتحوي تعديلات عن النسخة الموجودة في المخزن، الآن يمكنك تعديل ماتشاء وإنشاء ملفات جديدة داخل هذا المشروع وبعد ذلك كل ماعليك القيام به، لحفظ التعديلات إلى المخزن، هو زر يميني على المشروع واختيار (svn commit) ليتم حفظ التعديلات على المشروع الأصلي في المخزن وتذكر بأن لاتحفظ التعديلات إلا إذا كنت متأكداً من عملها بشكل كامل.
هذه الجولة السريعة مجرد بداية، وإن شاء الله ستكون هنالك تدوينة ثالثة للتعمق في الأمر أكثر وإنشاء فروع تطوير وإعطاؤهم مسميات.
















شكراً ألف شكر أخوي خالد على الشرح المميز والوافي
تصدق اني استخدم هذا البرنامج نفسه في الدوام يومياً
وكنت اقولك ما دري وش الـ SVN هههههه اعتقد اني نسيت اسمه
لكن والله بينت جميع التفاصيل الله يجزاك خير
واكيد راح يفيد الكثير
وهذا البرنامج من البرامج المستخدمه في أغلب قطاع الأعمال
أطيب تحياتي وبارك الله فيك ولجهودك أخوي خالد
هههه بسيطة، كيف مستواك فيها؟ وشو البرنامج اللي تستخدمه؟
برنامج TortoiseSVN اكثر من رائع والجميل
انه بعد عمليه التركيب
يكون له قائمه مستقله داخل Visual stdio 2008
وتقدر تحدث المشروع مباشره من القائمة
يعطيك العافيه أستاذ خالد
الله يعافيك، في كتير مقالات عن استخدامها مع VS أكثر من هذه الموجهة للويندوز
نفسه هذا اللي شرحت عنه
http://tortoisesvn.tigris.org
مستواي فيه ما يتعدى حالياً
SVN Checkout + Commit + Update
هالثلاث أزرار فقط
المشكله لو شخصين عملوا شيك اوت وشخص عدل في ملف والشخص الثاني عدل في نفس الملف وسوا الأول Commit والثاني Commit اتوقع نسخة الشخص الثاني بتروح
فما هي الطريقة الأفضل لكي يكون تحرير وبرمجه المشروع بصورة متوازيه سليمه
أولاً التنيسق أهم شيء، ثانياً في هذه الحالة فالذي نفذ التعديلات أولاً (commit) لايحدث له شيء أما الثاني الذي يريد أن ينفذ التعديلات ولايدري أن الأول قد عدل فعند الضغط على commit يخبره البرنامج بأن النسخة التي يعمل عليها قد تعدلت ويجب أن يحدثها لكي يرى التعديلات الجديدة. تستطيع رؤية الفروق diff بعد التحديث ومعرفة ماذا عدل الشخص الأول.
شكرا على الشرح ..
كما عودتنا دائما مواضيع تقنية بامتياز . فعلا البرنامج ممتاز
جعله الله في ميزان حسناتك
في أمان الله.
أهلاً بك أخي عادل
هلق في شغله انوا ما عم اقدر لحق التقنيات الي عم تحكي عليها
يعني دوبي بديت شوي اشتغل مع ال jquery
مسنتي منك الشرح الباقي عن الSVN
مشان اقدر اتعامل معوا منيح
مع اني مبرمج بشتغل لوحدي يعني ما بشتغل مع فريق عمل
اكيد بشكرك كتير خالد
الله يسلمك
شكرا يا خالد على الموضوع الرائع
أنا كنت أبحث عنة
سوف أتابع مدونتك دائما
أخوك محمد VBM
أهلاً أهلاً من زمان شرفنا بهالزيارة
[...] كيف تستخدم SVN في التدوينة السابقة تعرضنا لأنظمة التحكم بالإصدارات وفائدتها الكبيرة، وتكلمنا على أن SVN هو الخيار الأنسب للفرق الصغيرة والأفراد، واليوم سنتحدث ببعض التفصيل عن تركيبه على الجهاز العادي واستخدامه. [...]
مساء الخير خالد
سؤال عن صاحب هذا التعليق
links for 2009-01-20 « Free Open Source Directory: 20
لا أدري
اخي خالد: كإضافة بسيطة و إثراء للموضوع سأذكر أنه عند إضافة ملف جديد على نسخة العمل من الأفضل أن تضغط على الملف زر يميني و تختار الأمر “Add” وبعدها سيتم إضافة هذا الملف إلى النسخة الموجودة في الـ repository بعد أول عملية commit.
وكملحوظة أخرى: يفضل أن لا يحذف أي ملف من نسخة العمل بالطريقة العادية, وإنما يتم الحذف باستخدام الخيار “delete” من القائمة اليمينية غلى هذا الملف.
وكملاحظة أخيرة ومهمة يفضل عدم الاقتراب على الملفات الموجودة في الـ repository أبداً سواء بشكل مباشر أو باستخدام أي برنامج مثل الـ TortoiseSVN, فاستخدم هذا البرنامج للاستعراض و لإجراء الأوامر التي أتى أخي خالد على ذكرها
وشكراً
add صحيح ولا أدري كيف نسيت ذكرها!
وشكراً لمعلومة delete
شكراً لك على هذه التدوينة أخي خالد، المختصر المفيد
بوركت
، سنبدأ بإستخدام هذا النظام في العمل
.