مدونة الويب 2.0

  • الرئيسية
  • تعريف بالمدونة
  • المصادر
  • تواصل معي
  • أخبار المدونة
  • أفكار
  • إضافات
  • برمجة
  • تصميم
  • تطوير
  • فعاليات
  • كتب
  • لقاءات
  • مدونات عربية
  • مشاريع
  • مهمات
  • مواقع

كيف تستخدم SVN

January 17, 2009 - السبت 21 محرم 1430 التصنيف: تطوير

بسم الله الرحمن الرحيم،

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

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

  1. في أول شاشة من برنامج التثبيت اختر أين سيتم تصبيت ملفات المخدم (d:\programfiles\svn_server)
  2. مكان تثبيت المخزن (repository)، مثلاً (d:\svn)
  3. اسم المستخدم وكلمة السر لاستخدام svn
  4. مشروع افتراضي (Project)، اختر تجاوز هذه الخطوة (skip this step)
  5. مكان تثبيت TortoiseSVN وهي مجموعة الأدوات للتعامل مع SVN من خلال واجهة الويندوز أو سطر الأوامر
  6. أخيراً وليس آخراً اختر إعادة التشغيل الآن كي تتمكن من استخدام هذه الخدمة (احفظ هذه الصفحة قبل إعادة التشغيل كي تعود إليها :) )

في البداية سنتعرف إلى بعض المصطلحات:

trunk وهو الجذع الرئيسي أي النص المصدري الكامل لمشروعك

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

commit أو checkin أي تنفيذ التعديلات

checkout سحب نسخة من المشروع للعمل عليها

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

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

والآن مباشرة بعد هذه المقدمة نذهب إلى جولة سريعة ونبدأ بمشروع تجريبي:

  • ننشىء مجلد لمشروع تجريبي اسمه (svn_test) داخل المخزن (في حالتي مسار المخزن هو d:\svnrepos)، وداخل هذا المجلد (svn_test) ننشىء هذه المجلدات (trunk, branches, tags).
  • نضغط زر يمين على مجلد svn_test ونختار Import

svn_step2

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

svn_step3

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

svn_step4

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

svn_step5

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

هذه الجولة السريعة مجرد بداية، وإن شاء الله ستكون هنالك تدوينة ثالثة للتعمق في الأمر أكثر وإنشاء فروع تطوير وإعطاؤهم مسميات.

شارك هذه التدوينة:
إضافة 'كيف تستخدم SVN' إلى Del.icio.usإضافة 'كيف تستخدم SVN' إلى diggإضافة 'كيف تستخدم SVN' إلى Technoratiإضافة 'كيف تستخدم SVN' إلى Stumble Uponإضافة 'كيف تستخدم SVN' إلى Google Bookmarksإضافة 'كيف تستخدم SVN' إلى FaceBookإضافة 'كيف تستخدم SVN' إلى MySpaceإضافة 'كيف تستخدم SVN' إلى Twitterإضافة 'كيف تستخدم SVN' إلى FriendFeed
الوسوم: برمجة, تكتيك
أرسل هذه التدوينة لصديق أرسل هذه التدوينة لصديق
طباعة هذه التدوينة طباعة هذه التدوينة

    إقرأ أيضاً:

    • تنقيح الكود باستخدام PDT + Xdebug
    • مقدمة في الاختبارات الآلية
    • كيف تحسن مستوى فريقك البرمجي
    • كيف تحسن مستواك البرمجي
    • تنظيم الوقت البرمجي

19 تعليق في “كيف تستخدم SVN”

  1. عبدالملك الثاري: January 17, 2009 - السبت 21 محرم 1430 في 8:48 ص

    شكراً ألف شكر أخوي خالد على الشرح المميز والوافي

    تصدق اني استخدم هذا البرنامج نفسه في الدوام يومياً

    وكنت اقولك ما دري وش الـ SVN هههههه اعتقد اني نسيت اسمه

    لكن والله بينت جميع التفاصيل الله يجزاك خير

    واكيد راح يفيد الكثير

    وهذا البرنامج من البرامج المستخدمه في أغلب قطاع الأعمال

    أطيب تحياتي وبارك الله فيك ولجهودك أخوي خالد


  2. خالد: January 17, 2009 - السبت 21 محرم 1430 في 9:12 ص

    هههه بسيطة، كيف مستواك فيها؟ وشو البرنامج اللي تستخدمه؟


  3. سعود الهواوي: January 17, 2009 - السبت 21 محرم 1430 في 9:22 ص

    برنامج TortoiseSVN اكثر من رائع والجميل
    انه بعد عمليه التركيب
    يكون له قائمه مستقله داخل Visual stdio 2008
    وتقدر تحدث المشروع مباشره من القائمة

    يعطيك العافيه أستاذ خالد


  4. خالد: January 17, 2009 - السبت 21 محرم 1430 في 9:28 ص

    الله يعافيك، في كتير مقالات عن استخدامها مع VS أكثر من هذه الموجهة للويندوز :)


  5. عبدالملك الثاري: January 17, 2009 - السبت 21 محرم 1430 في 9:03 م

    نفسه هذا اللي شرحت عنه

    http://tortoisesvn.tigris.org

    مستواي فيه ما يتعدى حالياً

    SVN Checkout + Commit + Update

    هالثلاث أزرار فقط :)

    المشكله لو شخصين عملوا شيك اوت وشخص عدل في ملف والشخص الثاني عدل في نفس الملف وسوا الأول Commit والثاني Commit اتوقع نسخة الشخص الثاني بتروح

    فما هي الطريقة الأفضل لكي يكون تحرير وبرمجه المشروع بصورة متوازيه سليمه


  6. خالد: January 17, 2009 - السبت 21 محرم 1430 في 9:14 م

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


  7. Adil: January 18, 2009 - الأحد 22 محرم 1430 في 8:00 م

    شكرا على الشرح ..
    كما عودتنا دائما مواضيع تقنية بامتياز . فعلا البرنامج ممتاز
    جعله الله في ميزان حسناتك
    في أمان الله.


  8. خالد: January 18, 2009 - الأحد 22 محرم 1430 في 8:06 م

    أهلاً بك أخي عادل


  9. bassem: January 18, 2009 - الأحد 22 محرم 1430 في 11:10 م

    هلق في شغله انوا ما عم اقدر لحق التقنيات الي عم تحكي عليها
    يعني دوبي بديت شوي اشتغل مع ال jquery
    مسنتي منك الشرح الباقي عن الSVN
    مشان اقدر اتعامل معوا منيح
    مع اني مبرمج بشتغل لوحدي يعني ما بشتغل مع فريق عمل
    اكيد بشكرك كتير خالد


  10. خالد: January 18, 2009 - الأحد 22 محرم 1430 في 11:24 م

    الله يسلمك


  11. VBM_arabteam: January 19, 2009 - الاثنين 23 محرم 1430 في 2:45 م

    شكرا يا خالد على الموضوع الرائع
    أنا كنت أبحث عنة
    سوف أتابع مدونتك دائما
    أخوك محمد VBM


  12. خالد: January 19, 2009 - الاثنين 23 محرم 1430 في 4:07 م

    أهلاً أهلاً من زمان شرفنا بهالزيارة :)


  13. links for 2009-01-20 « Free Open Source Directory: January 20, 2009 - الثلاثاء 24 محرم 1430 في 6:55 م

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


  14. bassem: January 20, 2009 - الثلاثاء 24 محرم 1430 في 9:53 م

    مساء الخير خالد
    سؤال عن صاحب هذا التعليق
    links for 2009-01-20 « Free Open Source Directory: 20


  15. خالد: January 20, 2009 - الثلاثاء 24 محرم 1430 في 9:59 م

    لا أدري :D


  16. Saeed: February 7, 2009 - السبت 12 صفر 1430 في 5:22 م

    اخي خالد: كإضافة بسيطة و إثراء للموضوع سأذكر أنه عند إضافة ملف جديد على نسخة العمل من الأفضل أن تضغط على الملف زر يميني و تختار الأمر “Add” وبعدها سيتم إضافة هذا الملف إلى النسخة الموجودة في الـ repository بعد أول عملية commit.
    وكملحوظة أخرى: يفضل أن لا يحذف أي ملف من نسخة العمل بالطريقة العادية, وإنما يتم الحذف باستخدام الخيار “delete” من القائمة اليمينية غلى هذا الملف.
    وكملاحظة أخيرة ومهمة يفضل عدم الاقتراب على الملفات الموجودة في الـ repository أبداً سواء بشكل مباشر أو باستخدام أي برنامج مثل الـ TortoiseSVN, فاستخدم هذا البرنامج للاستعراض و لإجراء الأوامر التي أتى أخي خالد على ذكرها

    وشكراً


  17. خالد: February 7, 2009 - السبت 12 صفر 1430 في 8:31 م

    add صحيح ولا أدري كيف نسيت ذكرها!

    وشكراً لمعلومة delete


  18. Hejazi: June 30, 2009 - الثلاثاء 08 رجب 1430 في 2:37 ص

    شكراً لك على هذه التدوينة أخي خالد، المختصر المفيد :)


  19. عمر الدليمي: August 18, 2009 - الثلاثاء 28 شعبان 1430 في 7:37 م

    بوركت :) ، سنبدأ بإستخدام هذا النظام في العمل :) .


شاركنا برأيك؟

الرجاء الكتابة باللغة العربية الفصحى، وإذا كنت تريد كتابة سؤال حاول البحث في غوغل أولاً فغالباً ستجد عنده الخبر اليقين.

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • أفضل الأدوات لرفع الملفات
  • تنظيم الوقت البرمجي
  • مقدمة في CakePHP
  • أفكار ومواقع ويب 2 شهيرة
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • هل تريد أن تكسب 1000 دولار؟
  • تصميم قاعدة البيانات
  • مواقع عربية بالدروبال
    1. كتب مطلوبة
    2. إصلاح علة أمنية في دروبال 7.3 و 7.4
    3. حل المشكلة أم الترقيع؟
    4. مراجعة كتاب 50 Tips and Tricks for MongoDB Developers
    5. تعريب الوحدات الإضافية
    6. البرامج العربية
    7. تعريب الدروبال 7 – العد التنازلي للنواة
    8. تعريب الدروبال 7 – اليوم الثالث
    9. تعريب الدروبال 7 – اليوم الثاني
    10. تعريب الدروبال 7 – اليوم اﻷول
    11. تعريب الدروبال 7
    1. يونيو 2011
    2. مايو 2011
    3. أبريل 2011
    4. مارس 2011
    5. فبراير 2011
    6. يناير 2011
    7. ديسمبر 2010
    8. نوفمبر 2010
    9. أكتوبر 2010
    10. أغسطس 2010
    11. مارس 2010
    12. فبراير 2010
    13. يناير 2010
    14. ديسمبر 2009
    15. سبتمبر 2009
    16. أغسطس 2009
    17. يوليو 2009
    18. يونيو 2009
    19. مايو 2009
    20. مارس 2009
    21. فبراير 2009
    22. يناير 2009
    23. ديسمبر 2008
    24. نوفمبر 2008
    25. أكتوبر 2008
    26. سبتمبر 2008
    27. أغسطس 2008
    28. يوليو 2008
    29. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • أشارك بتعريب دروبال 7

    • أراجع كتب Oreilly

      I review for the O'Reilly Blogger Review Program
    • أفضل هدية تقدمها لي

    • تقنية الطماطم

      I Use the Pomodoro Technique
    • عشرون عام لمشروع اللينكس

      I'll be celebrating 20 years of Linux with
The Linux Foundation!
    • وسوم

      Ajax css IDE jQuery php SEO TinyMCE أخبار المدونة أذكار أطر العمل أفكار أمازون إدارة المحتوى إدارة محتوى إضافات استبيان الأجاكس الأمان الاختبارات الآلية الكيك اللغة العربية برمجة تحديثات تحميل تدوينات رمضان تصميم تطوير تعريب تعلم الكيك وتطوير المواقع بالبيت تكتيك تنظيم الوقت جوائز حديث دروبال دعاية فايرفوكس فرص عمل كتب مسابقات مشاريع مهمات مواقع نصائح هندسة برمجيات وورد بريس

    حول المدونة

    • 2008-2012 مدونة الويب 2.0.
    • يمكنك نقل المحتويات أو اقتباس أي جزء منها ويفضل ذكر المصدر.
    • من الممكن أن تساعدك خريطة الموقع.

    عروض العمل

    • يمكنك أن تناقشني حول عروض العمل للمدونات أو لمواقع الويب 2.0.
    • أيضاً يمكنك استشارتي في وضع التفاصيل لمدونة أو لفكرة مشروع جديد.
    • سيرتي الذاتية على My Linkedin Profile

    تواصل معي

    • خالد الحوراني مطور ويب 2.0
    • تابع أخباري على My Twitter account
    • أو راسلني فوراً

    Switch to our mobile site