سؤال

أنا أستخدم Eclipse/subclipse للتطوير.لدي أيضًا عميل TortoiseSVN.

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

لقد قمت بتشغيل النقل الكامل القياسي للمستودع باستخدام cvs2svn، ولم أواجه أية مشكلات.

أريد إعادة هيكلة المشاريع الموجودة في مستودع التخريب، لذلك بعد cvs2svn، حاولت القيام بنقل svn وقمت بإعادة الهيكلة.لقد تمكنت من القيام بهذه الخطوة بنجاح، مرة أخرى لا توجد مشاكل.

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

أواجه نفس المشكلة عند استخدام TortoiseSVN، لذا أفترض أنها ليست مشكلة مقطع فرعي.

الشيء المثير للاهتمام هو أنه إذا قمت بذلك svn move من المشروع خلف إلى موقعه الأصلي حيث تم التحويل إليه في البداية، واتبع نفس الخطوات، ليس لدي أي مشاكل، إصدار التحديث يعمل كما هو متوقع.

لذا على سؤالي (أسئلتي):

  1. هل فعلت شيئًا خاطئًا أثناء نقل cvs2svn والذي من شأنه أن يمنعني من إعادة تنظيم مستودع التخريب الخاص بي بنجاح؟
  2. هل هناك طريقة أفضل للقيام بما أحاول القيام به؟
هل كانت مفيدة؟

المحلول

حيث أعمل، قررنا نقل الملفات في SVN بعد الاستيراد من CVS.يتمتع نظام CVS بإمكانيات محدودة لتاريخ النقل، بينما يمكن "إرجاع" مستودع SVN لرؤية الشكل الذي يبدو عليه في أي وقت.مرة أخرى، من خلال القيام بذلك، تم اتخاذ القرار بأن الاحتفاظ بسجل لجميع التغييرات والتحركات كان أكثر أهمية.

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

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

نصائح أخرى

  1. لا، أنت لم تفعل أي شيء خاطئ
  2. نعم.يجب عليك إعادة تنظيم مستودع CVS الخاص بك قبل يمكنك استيراده عبر cvs2svn

سبب هذا العرض:

تحتاج دائمًا إلى التحقق من المجلد.إذا قمت بالتحديث إلى إصدار سابق، فقد لا يكون هذا المجلد موجودًا (تم نقل المجلد)، ثم سيقوم Subversion بحذف محتوياته.يتم دائمًا تنفيذ إعادة التسمية في Subversion كإزالة وإضافة.إذن، لديك اتصال رفيع بين الملفات، ولكنه مخصص فقط لتاريخ هذا الملف.إذا كنت تريد رؤية التصميم الجديد، فأنت بحاجة إلى مراجعة مجلد يحتوي على كليهما:المجلد الهدف والمصدر.ستتمكن بعد ذلك من "رؤية" نقل هذا المجلد، ولكن إذا كان لديك مجلد واحد فقط في الخروج، فسيختفي المجلد وستحتاج إلى التحقق من عنوان URL مختلف (إما الهدف أو المصدر).

لذلك من الأسهل إعادة هيكلة مشاريعك في CVS ثم الترحيل.العيب:لن يكون لديك أي سجل لإعادة الهيكلة ولن تتمكن من إنشاء/تجميع الإصدارات السابقة (التي تم إنشاؤها في CVS).

أتفق مع بيتر باركر أنه من السهل والمفضل إعادة تنظيم المشاريع في CVS قبل التحويل إلى Subversion، لو ما تريد القيام به هو إعادة تنظيم المجلدات والملفات ضمن المشاريع الفردية.

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

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