سؤال

أنا أعمل مع البرامج المحفوظة في svn للتحكم في الإصدار.أرغب في استخدام git (git-svn) ولكن البرنامج يتطلب الكثير من الإعداد والتكوين قبل استخدامه.هناك أدوات تعتني بجميع عمليات الإعداد، بما في ذلك التحقق من جميع التعليمات البرمجية عبر svn.

تتطلب جميع الوثائق الخاصة بـ git-svn (التي تمكنت من العثور عليها) إجراء عملية دفع جديدة باستخدام git-svn.

هل هناك طريقة لتحويل الخروج svn موجود حتى يتمكن من استخدام git-svn؟

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

المحلول

يمكنك أن تفعل شيئا مثل هذا:

  1. قم بإجراء استنساخ كامل لشجرة SVN الخاصة بك باستخدام git-svn، إلى دليل مؤقت.تأكد من استخدام نفس المراجعة تمامًا مثل عملية الدفع الحالية.
  2. انقل المجلد ".git" من المستوى العلوي لتسجيل الخروج git-svn إلى المستوى العلوي لتسجيل الخروج SVN.
  3. ستحتاج بعد ذلك إما إلى إخبار Git بتجاهل أدلة ".svn"، أو يمكنك حذفها جميعًا.
  4. حذف الخروج git-svn.
  5. هناك، يمكنك الآن معالجة ملفاتك الحالية باستخدام Git وgit-svn.
  6. قم بإجراء "حالة git" ونأمل أن تظهر لك عدم وجود تغييرات.

نصائح أخرى

ولا. استنساخ-إس بوابة يحول مستودع بأكمله إلى بوابة. المخارج SVN لا تملك مستودع كامل وذلك لا يمكن المستنسخة من. هذه هي الميزة الرئيسية للالتحول من SVN أو CVS لنظام توزيع (مثل بوابة).

وأفترض أنك ربما تريد للحفاظ على التاريخ. ومع ذلك، في حال كنت (أو أي شخص آخر يتعثر على هذه الصفحة) لا يحتاج التاريخ، يمكنك استخدام "تصدير" الميزة كما هو موضح هنا: <لأ href = "https://stackoverflow.com/a/419475/ 2437521 "> https://stackoverflow.com/a/419475/2437521 .

هناك طريقة أخرى للقيام بذلك، والتي لا تعدل نسخة العمل الأصلية من Subversion ولا تتطلب منك نسخها، وهي استخدام التصحيح:

  1. قم بإجراء استنساخ كامل لشجرة التخريب الخاصة بك باستخدام git-svn، إلى دليل جديد والذي سيكون مستودع Git.تأكد من استخدام نفس المراجعة تمامًا مثل عملية الدفع الحالية.يمكنك استخدام git reset --hard :/r<revision> لإجبارها على أن تكون نفس المراجعة بعد الاستنساخ، حيث <revision> هي المراجعة التي يتم تحديث نسخة عمل Subversion إليها (راجع هذا باستخدام svn info هناك).
  2. cd إلى نسخة عمل التخريب الخاصة بك.
  3. يستخدم svn status للتأكد من أن كافة الملفات الجديدة تم وضع علامة عليها A (او استعمل svn add لإضافتها)، ويتم وضع علامة على كافة الملفات المحذوفة D (او استعمل svn rm لحذفها).
  4. يجري svn diff >patch.diff لإنشاء ملف التصحيح.
  5. ينسخ patch.diff إلى الجزء العلوي من مستودع Git الذي تم إنشاؤه من قبل.
  6. cd إلى الجزء العلوي من مستودع Git الذي تم إنشاؤه من قبل.
  7. يجري git apply -p0 patch.diff لتطبيق التصحيح على شجرة العمل الخاصة بمستودع Git.

الآن يمكنك متابعة التغييرات باستخدام git status, ، و git add/git commit لهم لحفظها في المستودع المحلي الخاص بك.

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