عند استخدام cvs2svn كيف يمكنك إعادة تسمية الرموز بحيث فرع وعلامة العزم على نفس الاسم؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على تحويل مستودع CVS الذي يحتوي على الرموز التالية (وغيرهم):

وtcm-6.1.0-branch - فرع
tcm-6.1.0 - علامة

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

RegexpSymbolTransform(r'(.*)-branch', r'\1')

والآن أنا في نهاية المطاف مع "خطأ: متعددة تعريفات الرمز" TCM-6.1.0 "في ..." لكل ملف لtcm-6.1.0 على حد سواء فرع وعلامة. لدي عدة أزواج رمز CVS التي تؤدي إلى هذه المشكلة.

ويبدو لي أنه منذ رموز مصدر مختلفة والدلائل الوجهة تختلف هذه العملية يجب أن يكون ممكنا. هل هناك شيء أنا في عداد المفقودين أم أن هذا مجرد عيب cvs2svn؟

وكيف يمكنني إعادة تسمية هذه الرموز مثل أن تظل منفصلة ويؤدي إلى فرع وعلامة بنفس الاسم؟

-

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

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

المحلول

وRegexpSymbolTransform تعمل في مستوى منخفض للغاية، أثناء تحليل الملفات المخزون. لذلك، إذا كنت تستخدم SymbolTransform لإعطاء رمزين الذي يحمل نفس الاسم، وسوف يتم التعامل معها على أنها واحدة ونفس الرمز.

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

وبدلا من ذلك، يجب عليك تحويل فرع باسمه الأصلي، ولكن بعد ذلك أقول cvs2svn لتخزينه على مسار /branches/tcm-6.1.0 SVN. وبهذه الطريقة تنتهي رمزا حتى في المكان المناسب لفرع SVN مع الاسم المطلوب، ولكن لا يزال يعامل من قبل cvs2svn تمييزا لها عن علامة الذي يحمل الاسم نفسه.

ويمكن أن يتم ذلك باستخدام الخيار --symbol-hints=symbol-hints.txt سطر الأوامر أو حكم SymbolHintsFileRule('symbol-hints.txt') استراتيجية الرمز، حيث symbol-hints.txt هو ملف يحتوي على خط كما يلي:

<اقتباس فقرة>   

و. فرع TCM-6.1.0-فرع /branches/tcm-6.1.0.

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

نصائح أخرى

وcvs2svn يفعل الكثير من السحر بين السير الذاتية وإس. ولهذا السبب لا يمكن "تطابق" أسماء الفروع والعلامات، وبعد ذلك سوف cvs2svn لا تعرف أي إصدار ينتمي إلى أي دير. نصيحتي هي تسميتها بعد ذلك في واحدة ارتكاب بأداة مثل <وأ href = "http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmucc/" يختلط = "نوفولو noreferrer" > svnmucc . بحيث يكون لديك واحدة ارتكاب ثم كل شيء في المكان.

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