كيف يمكنني تحسين أداء CVS في سيناريو متعدد المواقع؟

StackOverflow https://stackoverflow.com/questions/138280

  •  02-07-2019
  •  | 
  •  

سؤال

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

هل هناك أي وكلاء CVS جيدين، أو أي طريقة رائعة للحفاظ على مزامنة خوادم CVS منفصلة؟هل لديك أي نصائح أخرى حول كيفية تحسين الأداء في هذا السيناريو؟

لسوء الحظ، سنظل عالقين مع نظام CVS خلال نطاق هذا المشروع، لذا فإن التحول إلى شيء مختلف تمامًا ليس خيارًا على المدى القصير.

هل كانت مفيدة؟

المحلول

لماذا لا يتم تبديل الخيار؟

أوصي بشدة بالتبديل إلى SVN أو git بدلاً من ذلك.وأن تقوم بهذا التحويل في أسرع وقت ممكن...مثل اليوم :)

هناك حتى أدوات/أدلة svn و أدوات/أدلة git هناك من سيقوم بتحويل CVS لك.

أنا شخصيًا أستخدم SVN وأحبه في عملي، ولكن بناءً على وصفك أعلاه، يبدو أن git قد يكون الخيار الأفضل بالنسبة لك.

نصائح أخرى

إليك ما قمت به منذ وقت طويل في ظروف مماثلة عندما كان النطاق الترددي والشبكات غير الموثوقة يمثلان مشكلة:

  • قم بعمل نسخة من المستودع وقم بتثبيته في الموقع البعيد.أنت تعلم أن لديك CVS1 وCVS2.
  • قم بقفل إحدى النسختين (CVS1) عن طريق منع الالتزامات.يتم تحقيق ذلك عن طريق تعديل "commitinfo" في وحدة CVSROOT.
  • يمكن استخدام CVS1 للتحديثات فقط
  • يمكن استخدام CVS2 للتحديثات والالتزام

عندما تريد منح حق الوصول في الالتزام بالنسخة 1، تابع كما يلي:

  • قفل CVS2
  • انسخ CVS2 إلى CVS1
  • فتح CVS1

يبدو هذا مرهقًا، وهو كذلك إذا قمت بذلك يدويًا، ولكنه يعمل.يتطلب الأمر القليل من الانضباط إذا قمت بذلك يدويًا.قد تكون المناطق الزمنية في صالحك لمرة واحدة.

لقد كتبت أداة لتتبع من لديه رمز الالتزام ولنقل المستودعات من موقع إلى آخر تلقائيًا عبر rsync وSSH.لقد عملت بشكل جيد لبضع سنوات.لم نفقد أي بيانات مطلقًا واستغرق الأمر حوالي 5 دقائق لنقل الرمز من موقع إلى آخر.

تمت كتابة أداة النقل بلغة بيرل واستغرق تطويرها حوالي أسبوعين، والعمل عليها بدوام كامل.

أعلم أنه منذ وقت طويل استخدم مطورو FreeBSD CVSup لكنني لم أستخدم هذه الأداة بنفسي أبدًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top