CVS - Concurrent Versions System
Khaled Al-Shamaa <khaled.alshamaa@gmail.com>
‫ما هو نظام ‪CVS‬؟‬

 ‫نظام الدصنندارات المتزامنننة ‪ CVS‬لحفظ الشيفرة‬          ‫‪‬‬
‫المصندرية هنو نظام مجانني مفتوح المصندر قائنم على‬
                              ‫هيكلية المخدم / الزبون.‬
‫يستخدم هذا النظام آلية الدمج للتعديلت التي يجريها عدة‬   ‫‪‬‬
‫مطورينن، بعكنس نموذج القفنل الذي يسنمح لمطور واحد‬
                   ‫فقط بإجراء التعديلت في كل مرة.‬
  ‫يمكن إستخدام هذا النظام عبر قناة آمنة )إتصال ‪.(SSH‬‬    ‫‪‬‬
‫نظام ‪ CVS‬والمشاريع المفتوحة المصدر‬

‫إن كنت مبرمجا تطمح للمساهمة يوما ما في أي مشروع‬        ‫‪‬‬
‫برمجني مفتوح المصندر، لبند لنك منن أنن تتقنن طريقة‬
‫التعامنل منع مخدم ‪ CVS‬لتكون قادرا علنى استخراج‬
‫الشيفرة المصندرية والحصنول عليهنا، فتقوم بعند ذلك‬
‫بإضافة تعديلتك إليها، ومن ثم إيداع تلك التعديلت التي‬
‫أضفتهنا مجددا فني مكننز الشيفرة المصندرية الدصلية‬
‫للمشروع، لتصننبح جزءننا منننه وتكون بالتالنني متاحة‬
                                            ‫للرخرين.‬
‫أين يمكن إستخدام نظام ‪CVS‬؟‬

‫منن ناحينة المبدأ فإنن أني مشروع مؤلنف من عدة ملفات‬       ‫‪‬‬
‫يمكننه السنتفادة منن رخدمات نظام ‪ CVS‬مثنل: تطوير‬
         ‫البرمجيات أو مواقع الويب أو مشاريع التوثيق.‬
  ‫تطبق مزايا نظام ‪ CVS‬على الملفات النصية فقط مثل:‬         ‫‪‬‬
                                   ‫ملفات ‪HTML‬‬         ‫‪‬‬

                ‫ملفات ‪(RTF (Rich Text Format‬‬          ‫‪‬‬

 ‫ملفات الشيفرة المصدرية البرمجية مثل ‪ PHP‬و ‪ C‬و ‪Java‬‬   ‫‪‬‬

                               ‫ملفات ‪ XML‬و ‪SQL‬‬        ‫‪‬‬
‫كيف يعمل نظام 1( ‪(CVS‬؟‬

                  ‫يوجد مكنز ‪ Repository‬على مخدم ما.‬         ‫‪‬‬

‫يسنتخرج ‪ Checkout‬كنل منن المطورينن نسنخة عمل‬                ‫‪‬‬
                 ‫‪ Working copy‬على أنظمتهم المحلية.‬
 ‫يقوم المطورون بإجراء التعديلت علنى نسنخة العمل‬             ‫‪‬‬
                    ‫المحلية التي تخصهم بطريقتهم المعتادة.‬
‫عنند إنتهاء العمنل علنى التعدينل الذي يقومون بنه، عليهم‬     ‫‪‬‬
‫أول إجراء عملينة تحدينث ‪ Update‬لنسنخة العمنل لديهم‬
‫لتدمنج فيها تعديلت المطورين الرخرين التي تنم إيداعها‬
                 ‫في المكنز رخلل فترة العمل على التعديل.‬
‫كيف يعمل نظام 2( ‪(CVS‬؟‬

‫بعند إتمام التعديلت وإنجاز عملينة التحديث بنجاح يقوم‬   ‫‪‬‬
‫المطور بإيداع ‪ Commit‬التعديلت التني قام بهنا في‬
        ‫المكنز ليتم دمجها في النسخة الدصلية للمشروع.‬
‫إنن قام مطورينن بتعدينل ذات السنطر النبرمجي بشكل‬       ‫‪‬‬
‫مسنتقل، حينهنا سنتفشل عملينة اليداع، ويتلقى المطور‬
‫الرخينر الذي يحاول اليداع ملحظنة تفيند بحدوث حالة‬
‫تعارض ‪ ،Conflict‬ويتوجننب عليننه حينهننا حل هذا‬
‫التعارض بشكنل يدوي قبنل أنن يكون قادرا على إيداع‬
                                  ‫تعديلته من جديد.‬
‫سهولة إستخدام ‪TortoiseCVS‬‬
‫عملية الستخراج ‪Checkout‬‬
CVS ‫ و‬Sourceforge.net
‫اليقونات ومعانيها في ‪TortoiseCVS‬‬
‫عملية اليداع ‪Checkin‬‬
History ‫تقرير‬
Annotate ‫تقرير‬
‫الحصول على نسخة قديمة‬
Conflict ‫حل مشكلة التعارض‬



<<<<<<< filename
  Your changes
=======
  Code merged from repository
>>>>>>> revision
‫فوائد إستخدام نظام 1( ‪(CVS‬‬

‫يسنمح لعدة مطورينن بالعمنل بشكنل مسنتقل على ذات‬          ‫‪‬‬
‫مجموعنة الملفات، ليتنم لحقنا دممج تعديلتهنم فني المكنز‬
                                              ‫المركزي.‬
‫يسمح لك بتتبع من قام بإجراء التعديلت، و أين هي تلك‬       ‫‪‬‬
‫التعديلت، و متمى تنم إجراؤها. كمنا يمكننك معرفة لماذا‬
 ‫أجريننت تلننك التعديلت إننن إلتزم المطورون بإضافة‬
           ‫تعليقات مفيدة مع كل عملية إيداع يقومون بها.‬
‫دليل قوي في المحكمة لثبات تطوير البرمجية من رخلل‬         ‫‪‬‬
                               ‫عرض مراحل تطويرها.‬
‫فوائد إستخدام نظام 2( ‪(CVS‬‬

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

‫إمكانية توليد تقرير يوضح مراحل تطور المشروع عبر‬           ‫‪‬‬
                 ‫الزمن لستقراء فعالية عملية التطوير.‬
‫توفينر إمكانينة التراجنع عنن أني منن التعديلت التني تمت‬   ‫‪‬‬
‫رخلل أني فترة زمنينة بسنهولة و اسنترجاع حالة الملفات‬
                            ‫كما كانت قبل تاريخ معين.‬
‫القتصناد فني اسنتخدام عرض نطاق التصنال الشبكي‬             ‫‪‬‬
‫المتوفنر ومسناحة التخزينن علنى المخدم منن رخلل حفظ‬
               ‫التعديلت نسبة إلى الدصدار السابق فقط.‬
‫ما ل يقوم به نظام ‪!CVS‬‬

‫ل يعتبر نظام ‪ CVS‬وسيلة للتصال بين أعضاء الفريق‬          ‫‪‬‬
                 ‫البرمجي، وليس بديل للعمل الجماعي.‬
‫ل يعتبر نظام ‪ CVS‬نظاما رخادصا بتتبع الرخطاء ومتابعة‬     ‫‪‬‬
                                     ‫عملية إدصلحها.‬
‫ل يوفر نظام ‪ CVS‬أي أدوات لفحص الشيفرة البرمجية‬          ‫‪‬‬
                                          ‫وإرختبارها.‬
‫خلةصة‬

‫يعتنبر نظام ‪ CVS‬القائنم مننذ العام 6891 نظامنا مستقرا‬    ‫‪‬‬
‫وناضجا ومستخدما على نطاق واسع، وهو متوفر أيضا‬
‫علنى كافنة أنظمنة التشغينل الشائعنة مثل ‪ Windows‬و‬
‫‪ Linux‬وكذلك ‪ ،Mac‬هذه إضافة إلى تضمينه في العديد‬
‫منن بيئات التطوينر المتكاملنة ‪ IDE‬مثل ‪ NetBeans‬و‬
         ‫‪ Eclipse‬و ‪ JDeveloper‬و ‪.Dreamwaver‬‬
 ‫يسنمح لنك نظام ‪ CVS‬بتوثينق تعديلتنك وحفنظ نسخ‬           ‫‪‬‬
‫إحتياطينة منن رخلل إيجاد منا تنم تعديلنه نسنبة للدصدار‬
                                                ‫السابق‬

CVS (Concurrent Versions System) in Arabic

  • 1.
    CVS - ConcurrentVersions System Khaled Al-Shamaa <khaled.alshamaa@gmail.com>
  • 2.
    ‫ما هو نظام‪CVS‬؟‬ ‫نظام الدصنندارات المتزامنننة ‪ CVS‬لحفظ الشيفرة‬ ‫‪‬‬ ‫المصندرية هنو نظام مجانني مفتوح المصندر قائنم على‬ ‫هيكلية المخدم / الزبون.‬ ‫يستخدم هذا النظام آلية الدمج للتعديلت التي يجريها عدة‬ ‫‪‬‬ ‫مطورينن، بعكنس نموذج القفنل الذي يسنمح لمطور واحد‬ ‫فقط بإجراء التعديلت في كل مرة.‬ ‫يمكن إستخدام هذا النظام عبر قناة آمنة )إتصال ‪.(SSH‬‬ ‫‪‬‬
  • 3.
    ‫نظام ‪ CVS‬والمشاريعالمفتوحة المصدر‬ ‫إن كنت مبرمجا تطمح للمساهمة يوما ما في أي مشروع‬ ‫‪‬‬ ‫برمجني مفتوح المصندر، لبند لنك منن أنن تتقنن طريقة‬ ‫التعامنل منع مخدم ‪ CVS‬لتكون قادرا علنى استخراج‬ ‫الشيفرة المصندرية والحصنول عليهنا، فتقوم بعند ذلك‬ ‫بإضافة تعديلتك إليها، ومن ثم إيداع تلك التعديلت التي‬ ‫أضفتهنا مجددا فني مكننز الشيفرة المصندرية الدصلية‬ ‫للمشروع، لتصننبح جزءننا منننه وتكون بالتالنني متاحة‬ ‫للرخرين.‬
  • 4.
    ‫أين يمكن إستخدامنظام ‪CVS‬؟‬ ‫منن ناحينة المبدأ فإنن أني مشروع مؤلنف من عدة ملفات‬ ‫‪‬‬ ‫يمكننه السنتفادة منن رخدمات نظام ‪ CVS‬مثنل: تطوير‬ ‫البرمجيات أو مواقع الويب أو مشاريع التوثيق.‬ ‫تطبق مزايا نظام ‪ CVS‬على الملفات النصية فقط مثل:‬ ‫‪‬‬ ‫ملفات ‪HTML‬‬ ‫‪‬‬ ‫ملفات ‪(RTF (Rich Text Format‬‬ ‫‪‬‬ ‫ملفات الشيفرة المصدرية البرمجية مثل ‪ PHP‬و ‪ C‬و ‪Java‬‬ ‫‪‬‬ ‫ملفات ‪ XML‬و ‪SQL‬‬ ‫‪‬‬
  • 5.
    ‫كيف يعمل نظام1( ‪(CVS‬؟‬ ‫يوجد مكنز ‪ Repository‬على مخدم ما.‬ ‫‪‬‬ ‫يسنتخرج ‪ Checkout‬كنل منن المطورينن نسنخة عمل‬ ‫‪‬‬ ‫‪ Working copy‬على أنظمتهم المحلية.‬ ‫يقوم المطورون بإجراء التعديلت علنى نسنخة العمل‬ ‫‪‬‬ ‫المحلية التي تخصهم بطريقتهم المعتادة.‬ ‫عنند إنتهاء العمنل علنى التعدينل الذي يقومون بنه، عليهم‬ ‫‪‬‬ ‫أول إجراء عملينة تحدينث ‪ Update‬لنسنخة العمنل لديهم‬ ‫لتدمنج فيها تعديلت المطورين الرخرين التي تنم إيداعها‬ ‫في المكنز رخلل فترة العمل على التعديل.‬
  • 6.
    ‫كيف يعمل نظام2( ‪(CVS‬؟‬ ‫بعند إتمام التعديلت وإنجاز عملينة التحديث بنجاح يقوم‬ ‫‪‬‬ ‫المطور بإيداع ‪ Commit‬التعديلت التني قام بهنا في‬ ‫المكنز ليتم دمجها في النسخة الدصلية للمشروع.‬ ‫إنن قام مطورينن بتعدينل ذات السنطر النبرمجي بشكل‬ ‫‪‬‬ ‫مسنتقل، حينهنا سنتفشل عملينة اليداع، ويتلقى المطور‬ ‫الرخينر الذي يحاول اليداع ملحظنة تفيند بحدوث حالة‬ ‫تعارض ‪ ،Conflict‬ويتوجننب عليننه حينهننا حل هذا‬ ‫التعارض بشكنل يدوي قبنل أنن يكون قادرا على إيداع‬ ‫تعديلته من جديد.‬
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    Conflict ‫حل مشكلةالتعارض‬ <<<<<<< filename Your changes ======= Code merged from repository >>>>>>> revision
  • 16.
    ‫فوائد إستخدام نظام1( ‪(CVS‬‬ ‫يسنمح لعدة مطورينن بالعمنل بشكنل مسنتقل على ذات‬ ‫‪‬‬ ‫مجموعنة الملفات، ليتنم لحقنا دممج تعديلتهنم فني المكنز‬ ‫المركزي.‬ ‫يسمح لك بتتبع من قام بإجراء التعديلت، و أين هي تلك‬ ‫‪‬‬ ‫التعديلت، و متمى تنم إجراؤها. كمنا يمكننك معرفة لماذا‬ ‫أجريننت تلننك التعديلت إننن إلتزم المطورون بإضافة‬ ‫تعليقات مفيدة مع كل عملية إيداع يقومون بها.‬ ‫دليل قوي في المحكمة لثبات تطوير البرمجية من رخلل‬ ‫‪‬‬ ‫عرض مراحل تطويرها.‬
  • 17.
    ‫فوائد إستخدام نظام2( ‪(CVS‬‬ ‫يقوم هذا النظام بحفنظ الملفات ضمنن مكننز مركزي، مع‬ ‫‪‬‬ ‫توفينر نسنخ إحتياطينة موزعنة علنى أنظمنة المطورين‬ ‫المحلينة )نسنخ العمنل التني سنبق أنن إسنتخرجوها من‬ ‫المكنز(.‬ ‫تمكين فرق العمل المنتشرة جغرافيا من العمل على ذات‬ ‫‪‬‬ ‫المشروع )كما هي حال المشاريع المفتوحة المصدر(.‬ ‫حفيظ كافية الدصيدارات بدءيا مين تارييخ إستخدام النظام،‬ ‫‪‬‬ ‫على عكس أسلوب النسخ الحتياطي حيث نتخلص عادة‬ ‫من النسخ القديمة بعد فترة.‬
  • 18.
    ‫فوائد إستخدام نظام3( ‪(CVS‬‬ ‫إمكانية توليد تقرير يوضح مراحل تطور المشروع عبر‬ ‫‪‬‬ ‫الزمن لستقراء فعالية عملية التطوير.‬ ‫توفينر إمكانينة التراجنع عنن أني منن التعديلت التني تمت‬ ‫‪‬‬ ‫رخلل أني فترة زمنينة بسنهولة و اسنترجاع حالة الملفات‬ ‫كما كانت قبل تاريخ معين.‬ ‫القتصناد فني اسنتخدام عرض نطاق التصنال الشبكي‬ ‫‪‬‬ ‫المتوفنر ومسناحة التخزينن علنى المخدم منن رخلل حفظ‬ ‫التعديلت نسبة إلى الدصدار السابق فقط.‬
  • 19.
    ‫ما ل يقومبه نظام ‪!CVS‬‬ ‫ل يعتبر نظام ‪ CVS‬وسيلة للتصال بين أعضاء الفريق‬ ‫‪‬‬ ‫البرمجي، وليس بديل للعمل الجماعي.‬ ‫ل يعتبر نظام ‪ CVS‬نظاما رخادصا بتتبع الرخطاء ومتابعة‬ ‫‪‬‬ ‫عملية إدصلحها.‬ ‫ل يوفر نظام ‪ CVS‬أي أدوات لفحص الشيفرة البرمجية‬ ‫‪‬‬ ‫وإرختبارها.‬
  • 20.
    ‫خلةصة‬ ‫يعتنبر نظام ‪CVS‬القائنم مننذ العام 6891 نظامنا مستقرا‬ ‫‪‬‬ ‫وناضجا ومستخدما على نطاق واسع، وهو متوفر أيضا‬ ‫علنى كافنة أنظمنة التشغينل الشائعنة مثل ‪ Windows‬و‬ ‫‪ Linux‬وكذلك ‪ ،Mac‬هذه إضافة إلى تضمينه في العديد‬ ‫منن بيئات التطوينر المتكاملنة ‪ IDE‬مثل ‪ NetBeans‬و‬ ‫‪ Eclipse‬و ‪ JDeveloper‬و ‪.Dreamwaver‬‬ ‫يسنمح لنك نظام ‪ CVS‬بتوثينق تعديلتنك وحفنظ نسخ‬ ‫‪‬‬ ‫إحتياطينة منن رخلل إيجاد منا تنم تعديلنه نسنبة للدصدار‬ ‫السابق‬