تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيفية استخدام نظام ال Subversion من الفيجوال ستوديو مباشرة لتنسيق العمل الجماعي
#1
كاتب الموضوع : Boutemine Oualid

السلام عليكم و رحمة الله و بركاته
في هذه الجولة السريعة ، سنتعلم إن شاء الله تعالى استعمال نظام الSubversion لتنسيق العمل الجماعي من الفيجوال ستوديو مباشرة و سيكون العمل على هذا النظام إلزامي للجميع لتعم الفائدة و لنكتسب خبرة في العمل الجماعي على المشاريع المفتوحة المصدر لاحقا.
تعريف الSubversion:
هو نظام لمتابعة و تنسيق العمل الجماعي على المشاريع البرمجية و غيرها
هذا النظام مبني على هندسة الخادم و العميل
الخادم يقوم بعمل دورين:
1. استضافة ملفات المشروع و التحديثات الدورية التي يقوم أعضاء الفريق برفعها إلى السرفر مع التعليقات و التواريخ و جميع المعلومات اللازمة (يمكنك حتى أن تعرف من قام بكتابة سطر معين في ملف و متى)، المكان الذي تخزن فيه على السرفر يسمى Repository
ال Repository يملك مدير و مجموعة من الأعضاء مع صلاحيات مختلفة (قراءة، تعديل، تنزيل الملفات، رفع التحديثات، ....) و المدير هو الذي يقوم بتحديد أعضاء الفريق و صلاحياتهم.
ان كنت تريد أن تملك Repository خاص بك و مجانا يمكنك أن تحصل على مساحة 1.5 جيجا مجانا على الخادم http://xp-dev.com/ كما يمكنك البحث عن خوادم مجانية أخرى لل Repositories
اذن بالمختصر المفيد، ال Repository هو المساحة المشتركة التي تقوم باستظافة جميع ملفات المشروع مع جميع المعطيات الخاصة بالفريق.
2. التنسيق بين أعضاء الفريق بتحرير تقارير و اضافة نظام لتعقب الشوائب و لائحة بريدية اضافة إلى الخدمات القاعدية الأخرى مثل معلومات التعديلات الأخيرة و متى و من طرف من و كيف...
العميل:
العميل عبارة عن برنامج يدعم نظام ال Subversion يقوم بالدخول إلى ال Repository و يقرأ محتوياته.
مهام العميل:
يقوم العميل ب:
- تنزيل ملفات المشروع كلها (ان استلزم الأمر) و حسب صلاحيات المستعمل في ال Repository . عادة ما يتم تنزيل هذه الملفات إلى مجلد ثابت عند المستعمل يسمى بال Working Copy Space حيث يحتوي هذا المجلد على ملفات المشروع و الملفات الأخرى الخاصة بالمعطيات التي يقوم العميل بعرضها.
- البحث عن نسخ الملفات الجديدة التي قام الأعضاء برفعها إلى الRepository و تنزيلها إلى ال Working Copy Space .
- عرض لائحة الملفات (الخاصة بالمشروع فقط مثل ملفات الفئات و غيرها دون الملفات التي يستعملها نظام ال SVN لتخزين الصلاحيات و المعطيات الأخرى) إضافة إلى معطيات عنها مثل آخر عضو قام بتحديثها و متى تم ذلك إضافة إلى التعليق الذي أضافه و أيضا التنقل بين جميع الVersions الخاصة بملف معين و عرضه (عادة في ال IDE).
عادة ما يسمى الجزء من البرنامج العميل الذي يقوم بهذا العمل بال Repository Explorer
يقوم ال Repository Explorer بعرض جميع المجلدات و ملفات المشروع و المعلومات التي تحدثنا عنها كما و يمكن لمدير ال Repository من القيام بعمليات التعديل اليدوية مثل ال الحذف و غيرها من العمليات التي تتطلب صلاحيات المدير.
- تعيين الملفات التي قمت بتعديلها في ال Working Copy Space و اعطائك الصلاحية لرفعها إلى ال Repository مع تعليق بسيط على عملية التعديل (اختياري).
الجزئ الذي يقوم بهذا العمل يسمى عادة بال Working Space Explorer.
- عرض لائحة بالملفات التي قام الأعضاء بتحديثها و التعليقات المرسلة إضافة إلى التواريخ.
لننتقل الآن إلى التطبيق
عادة ما تمتلك بيئة التطوير جميع خصائص ال Client التي تحدثنا عنها سابقا للعمل على ال Repository لكن الفيجوال ستوديو لا يملك نظام لاستعمال ال Subversion مباشرة و لذلك علينا أولا تنزيل إضافة add-in له لكي نستفيد من قدرات هذا النظام.
ملاحظة: يوجد العديد من البرامج التي يمكن استخدامها و لعل أشهرها على نظام التشغيل Windows هو ال Tortoise إلا أنني هنا اخترت اضافة للفيجوال ستوديو لجعل بيئة التطوير الأساس لعمل كل شيء
- أولا نقوم بتنزيل الاضافة ankhSVN و هي اضافة مجانية و مفتوحة المصدر قامت بتطويرها شركة ال COLLABNET -التي يعمل عندها مؤلف الكتاب الأول الذي سنقوم بترجمته ان شاء الله-
http://ankhsvn.open.collab.net/servl...ss?pageID=3794
و اختر النسخة 2 التي تدعم الفيجوال ستوديو 2005 و 2008
- بعد استكمال التنزيل قم بفتح الملف و ابدأ عملية التنصيب و لكن عليك أولا أن تغلق جميع نوافذ ال Visual Studio المفتوحة حتى يتمكن ملف التسطيب من العمل بشكل طبيعي.
- الآن نبدأ استكشاف الاضافة، عند فتحك لل Visual Studio للمرة الأولى يعلمك بأن الاضافة مثبة بصورة صحيحة بعرضها في لائحة الاضافة في ال Splash Screen

استكشاف الاضافة ankhSVN الخاصة بالفيجوال ستوديو
1. ال Repository Explorer
يمكن الوصول إلى ال Repository Explorer باختيار القائمة View ثم ال Repository Explorer (لاحظ الصورة)
[صورة مرفقة: 18_01349788985.jpg]

الآن سيقوم الفيجوال ستوديو بعرض نافذة ال Repository Explorer (لاحظ الصورة أدناه)
[صورة مرفقة: 18_01349789014.jpg]
أولا سنضيف إلى قائمة ال Repositories عنوان ال Repository الذي نريد استكشافه من زر الاضافة في شريط الأدوات الخاص بال Repository Explorer
[صورة مرفقة: 18_01349789111.jpg]
سيطلب منك الفيجوال ستوديو عنوان ال URL الخاص بال Repository عليك بكتابته مثل أي عنوان URL يعني (البروتوكول و العنوان) كما يمكنك الفيجوال ستوديو أيضا من اختيار عنوان قمت بكتابته سابقا حيث يتذكر كل العناوين التي كتبتها
اذا أردت التجريب، فيمكنك الحصول على حساب مجاني على أحد المواقع التالية
http://xp-dev.com/ المفضل لدي
http://www.codespaces.com/
https://opensvn.csie.org/
http://unfuddle.com/
http://www.assembla.com/
http://www.bitbucket.org/
http://sshcontrol.com/
http://www.origo.ethz.ch/

اذا كان ال Repository غير متاح للجمهور (non public) فسيطلب منك الفيجوال ستوديو معلومات الدخول إلى ال Repository (لاحظ الصورة)
[صورة مرفقة: 18_11349789111.jpg]

و اذا كان عكس ذلك فيمكنك التجول داخل ال Repository و عمل ما تشاء حسب الصلاحيات التي قام المدير باعطائها للزوار
بعدها يمكننا التجول بين ثنايا المشروع (أو المشاريع) التي يحتويها ال Repository و تنزيل ما تشاء (حسب الصلاحيات المتاحة لك) كما يمكنك مشاهدة خصائص الملفات و تنزيلها إلى ال Working Copy Space كما و يمكنك فتحها مباشرة داخل الفيجوال ستوديو ان كان يدعم نوع الملف أو مع برنامج خارجي، كل ذالك بواسطة القائمة المنسدلة التي تظهر بالضغط بالزر الأيمن للماويس على الملف المعروض في الجهة اليسرى من نافذة ال Repository Explorer
[صورة مرفقة: 18_21349789111.jpg]

نبقى دائما مع ال Repository Explorer و هذه المرة مع شريط الأدوات الخاص به
في أعلى النافذة
شريط الأدوات يتغير حسب العنصر المحدد (ملف أو مجلد)
في حالة الجلد ستظهر لك هذا الشريط
[صورة مرفقة: 18_31349789111.jpg]
اذا كان العنصر المحدد في ال Repository Explorer عبارة عن ملف سيظهر لك هذا الشريط
(نفس الشريط السابق لكن مع اختلاف بسيط)
[صورة مرفقة: 18_41349789111.jpg]
}}}
تم الشكر بواسطة:
#2
كاتب المشاركة : Boutemine Oualid

الآن ننتقل إلى القوائم المنسدلة
القائمة الأولى هي التي تظهر عند اختيار مجلد
[صورة مرفقة: 18_01349789240.jpg]

العنصر Copy To Working Space يمكنك من تنزيل جميع محتويات المجلد الموجود في ال Repository إلى مجلد على جهازك يسمى Working Copy و هو المكان الذي تعمل عليه عندما لا تكون متصلا بالخادم.
أما فيما يخص العنصر View History فيقوم بعرض نافذة ال History الخاصة بالعنصر المحدد (سواء كان مجلد أو ملف) التي تتولى عرض التحديثات على ملفات المجلد (أو الملف) مثل النسخ الجديدة، التعليقات التي كتبها بقية الأعضاء و بعض المشكال الأخرى
[صورة مرفقة: 18_01349789265.jpg]

يمكنك تحديث المعلومات المعروضة في هذه النافذة بالضغط على الزر Fetch All

في حالة اختيارك لملف فستظهر لك هذه النافذة المنسدلة
[صورة مرفقة: 18_01349789356.jpg]
الشيء الجديد الوحيد فيها هو العنصر Annotate، هذا الزر يقوم بتنزيل أحدث نسخة من الملف المحدد و يقوم بعرضه مع كل التعليقات الخاصة بالتعديلات التي قام بها الأعضاء (مثلا السطر الفلاني قام بكتابته العضو الفلاني في الساعة الفلانية و هاهو التعليق الذي كتبه!)
انظر إلى الصورة
[صورة مرفقة: 18_11349789356.jpg]

في النافذة السابقة، تم تنزيل جميع نسخ الملف الأقدم فالأحدث
سيفتح الملف في ال code editor
[صورة مرفقة: 18_21349789356.jpg]
في الحاشية التي تظهر على اليسار، تجد اسم العضو المسؤول عن كتابة السطر و وقت كتابته و عند نقل مؤشر الفأرة على أي اسم، سيظهر لك Tool tip فيه التعليق الذي قام بكتابته العضو .
عند الضغط بالزر الأيسر للفأرة على أي عنصر، فستحدد جميع الأسطر التي تم تعديلها في نفس الوقت من طرف العضو
هناك أيضا قائمة منسدلة هامة جدا تمكنك من مقارنة التغييرات بين مختلف النسخ و الانتقال إلى نسخة أقدم
اضغط بزر الفأرة الأيمن على أي عنصر لتنبثق القائمة
[صورة مرفقة: 18_31349789356.jpg]
العنصر الأول تكلمنا عنه سابقا و قلنا بأنه يقوم بعرض ال History الخاصة بهذا الملف.
الزر Show Changes يقوم بعرض أحدث نسختين و يمكنك من مقارنتهما عبر نافذة المقارنة
[صورة مرفقة: 18_41349789356.jpg]
أما الزر الأخير Annotate فيعرض لك النسخة الأصلية عند قيام الكاتب (المحدد في الهامش) برفعها إلى السرفر أو بالأحرى تمكنك من التنقل بين النسخ.
أنهينا ال Repository Explorer، ننتقل إلى شيء آخر
}}}
تم الشكر بواسطة:
#3
كاتب المشاركة : Boutemine Oualid

نافذة ال Working Copy Explorer
هذه النافذة تمكنك من عرض المجلدات التي قمت بتحديدها على أنها Working Copy و محتوياتها
لنلق نظرة على هذه الصورة
[صورة مرفقة: 18_01349789506.jpg]


كما تلاحظ، هناك علامة صح أمام المجلد المستعمل ك Woking Copy
في الجهة المقابلة، يمكنك رؤية علامة صح التي تظهر على الملفات ، و تعني ببساطة أن الملفات لا تحتوي على تعديلات قمت باضافتها أما المربع الأحمر فيمكنك من معرفة الملفات التي تحتوي على تعديلات و التي يجب رفعها إلى ال Repository في التحديث القادم.
لنعرج على شريط الأدوات الخاص بهذه النافذة
[صورة مرفقة: 18_11349789506.jpg]

ننتقل الآن إلى القوائم المنسدلة الخاصة بهذه النافذة
القائمة الأولى هي الخاصة بالمجلد
[صورة مرفقة: 18_21349789506.jpg]
عناصر هذه القائمة:
Open: تقوم بعرض محتويات المجلد في الجهة اليمنى
Export: القيام بعملية نسخ للملفات الموجودة في الWorking Copy إلى مجلد آخر
View History: تمكنك من مشاهدة الHistory الخاصة بهذا المجلد
Subversion: هذه القائمة هي الأهم لأنها تمكنك من نقل التعديلات التي قمت بها إلى ال Repository و هي تتكون من
- Update To Specific Version: يمكنك هذا ال زر من تحديث ال Working Copy إلى ال Version التي تريدها.
- Unified Diff: لا أعرف دورها!!
- Subversion Properties: خصائص ال Wokring Copy
- Switch: تمكنك من تحديث محتويات ال Working Copy إلى النسخة التي تريد (الأحدث، حسب التاريخ، حسب ال VERSION...)

- Merge: دمج التحديثات مع النسخ الأقدم
- CleanUp: لا أدري أيضا ما دورها
- Refresh Status: واضحة!!
- Open Folder in Working Copy Explorer: تقوم بعرض محتويات المجلد في ال Working Copy Explorer
- Open Folder in Repository Explorer: تقوم بفتح ال Repository Explorer و تنقلك مباشرة إلى المجلد الموجود على الخادم الذي تستعمله لتحديث ال Wokring Copy
properties: عرض خصائص ال Working Space في نافذة الخصائص
بالنسبة للملفات
يجب التنبيه إلى أن عناصر القائمة تختلف حسب حالة الملف، فان كان الملف يحتوي على تعديلات فسترى في القائمة خيارات لرفع التحديثات إلى السرفر
[صورة مرفقة: 18_31349789506.jpg]
open: فتح الملف في الفيجوال ستوديو.
export: نسخ الملف إلى مكان آخر على القرص الصلب.
Update to Latest Version: تمكنك من تحديث الملف بأحدث نسخة موجودة في الخادم.
Commit: تمكنك من رفع الملف الذي قمت بتعديله إلى السيرفر
View History: عرض الHistory الخاصة بالملف
Revert: تراجع إلى النسخة الأصلية
Subversion: و تحتوي على :
[صورة مرفقة: 18_41349789506.jpg]
معظم العناصر قمنا بشرحها في القائمة المنسدلة الخاصة بالمجلدات
أما الجديد فهو:
Lock: تمكنك من تجميد التحديثات على ملف معين بحيث لا يستطيع أي عضو أن يقوم برفع التحديثات التي أضافها على الملف إلى ال Repository
Compare: تمكنك من المقارنة بين النسخة الأصلية و النسخة الجديدة التي عدلت فيها
Create Patch: تمكنك من تخزين Patch و هو عبارة عن ملف يحتوي على التعليمات التي على البرنامج أن يقوم بها عند القيام بعملية تحديث الملف من ال Repository أو رفعه إلى الRepository
Remove From Change List: أما هذه فتقوم بحذف الملف من لائحة الملفات المعنية بعمليات التحديث (سواءا برفع الملف إلى ال Repository أو تنزيله منه)
}}}
تم الشكر بواسطة:
#4
كاتب المشاركة : Boutemine Oualid

الآن إلى النافذة الأخيرة و هي نافذة التغييرات التي قمت بها
Pending Changes
لعرضها عليك بالذهاب إلى القائمة View ثم Pending Changes
[صورة مرفقة: 18_01349789687.jpg]
هذه النافذة تعرض الملفات التي تحتوي على تعديلات قمت بها لتمكنك من رفعها إلى الRepository دفعة واحدة كما و تنبهك في حالة حصول خلط Conflicts بين ملفين يمثلان نفس الملف على Repository و لكن كل منهما له محتوى مختلف عن الآخر.
كما و تمكنك أيضا من عرض التعليقات و غيرها من المعلومات المفيدة التي تعرفنا عليها سابقا

أشرطة الأدوات التي توفرها الاضافة ankhSVN
هناك شريطين أساسيين يمكن عرضهما بالذهاب إلى القائمة View ثم Toolbars
الشريطين هما
Source Control و Source Control-Subversion

فتح مشاريع مباشرة من ال Repository أو اضافتها إلى Solution مفتوح مسبقا
يمكنك فتح مشاريع في الفيجوال ستوديو مباشرة من ال Repository أو اضافتها إلى Solution مفتوحة في الفيجوال ستوديو
اذهب إلى القائمة File ثم Subversion ثم تجد القائمة المنبثقة التالية
[صورة مرفقة: 18_11349789687.jpg]
بعد اختيار العنصر Open أو Add، ستظهر لك النافذة التالية و التي من خلالها يمكنك أن تبحث عن ملف ال sln أو الcsproject أو ال vbproject لفتح المشروع أو ال Solution
[صورة مرفقة: 18_21349789687.jpg]

بعد فتحها، سيطلب منك الفيجوال ستوديو المجلد الذي تريد أن توضع فيه ملفات المشروع بعد تنزيلها بحيث سيكون هذا المجلد Working Copy
بعدها يمكنك مشاهدة الملفات في ال Solution Explorer كما لو كنت تشاهدها في ال Working Copy Explorer و يمكنك أيضا استعمال القوائم المنسدلة للقيام بالمهام التي تعرفنا عليها سابقا
[صورة مرفقة: 18_31349789687.jpg]
يبقى شيء وحيد و هو التحكم في خصائص ال Subversion في الفيجوال ستوديو
لعلك استعملت من قبل نافذة الخيارات Tools->Options
[صورة مرفقة: 18_41349789687.jpg]
يمكنك منها أن تعدل بعض الخيارات :
- اختيار الاضافة التي تريد ان تستعملها في حالة وجود أكثر من واحدة
- ضبط خيارات ال Proxy ان أردت التخفي وراء Proxy
- حذف ال Cache التي يتسخدمها النظام لتذكر معلومات الدخول (الاسم و كلمة السر)
- اختيار البرنامج الخارجي للتعامل مع ال Subversion (خارج الفيجوال ستوديو مثل ال TortoiseSVN)
[صورة مرفقة: 18_51349789687.jpg]

و في الختام تقبلوا تحيات الوليد و ان شاء الله عقبال ما نشوف أول مشروع جماعي برمجي باسم المنتدى و باستعمال هذه الطريقة الاحترافية المستعملة بكثرة في الشركات و المشاريع المفتوحة المصدر
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حصرياً جميع روابط Microsoft Visual Studio.Net مباشرة وشغالة 100% من شركة Microsoft أسامة أحمد 12 28,135 18-04-26, 06:21 PM
آخر رد: مصطفى احمد
  هل تعرف السر الذي يجعل المحاسبين القانونيين الأكثر طلباً في سوق العمل ؟ xmanq 0 295 05-04-25, 04:23 PM
آخر رد: xmanq
  كيفية زراعة الأسنان: الخطوات، الأنواع، والمزايا تقيا 0 259 02-10-24, 03:13 PM
آخر رد: تقيا
  كيفية عمل استراتيجية للسوشيال ميديا emad ezzat 0 299 19-08-24, 05:04 PM
آخر رد: emad ezzat
  أفضل مجالات العمل الحر في 2024 marwaeg 0 324 30-06-24, 11:26 AM
آخر رد: marwaeg
  [مقال] تهيئة موقعك لمحركات البحث و كيفية اختيار افضل شركة لعمل ذلك Ahmad Maher 0 417 17-05-24, 07:33 PM
آخر رد: Ahmad Maher
  [سلسلة تعليمية] كيفية اختيار قالب ووردبريس لتصميم موقع سياحة من الضروري اختيار قالب ووردبريس مناسب emad ezzat 0 491 18-01-24, 09:14 PM
آخر رد: emad ezzat
  [مقال] كيفية عمل استراتيجية التسويق الالكتروني مقالات ديجيتال ماركتينج بالعربي emad ezzat 0 447 10-01-24, 01:17 AM
آخر رد: emad ezzat
  كيفية كتابة المحتوى التسويقى emad ezzat 0 700 24-08-23, 11:24 PM
آخر رد: emad ezzat
  أهمية استخدام ماكيت معماري وماكيت مصغر في المشاريع الهندسية mennashaker 1 1,077 16-03-22, 06:10 PM
آخر رد: mennashaker

التنقل السريع :


يقوم بقرائة الموضوع: