SVN: دمج التغييرات المحلية في نسخة عمل أخرى
-
01-10-2019 - |
سؤال
لدي نسختان عاملين من نفس المشروع ، تم تحويل كل منهما إلى فرع مختلف. هل من الممكن دمج التغييرات المحلية في مشروع واحد إلى نسخة العمل الأخرى؟
المحلول
لا يمكنك دمج نسختين عاملين منفصلين ، ولكن هناك بعض الأشياء التي يمكنك القيام بها.
إذا تم إجراء التغييرات على الملفات الموجودة ، فإن أسهل طريقة هي إنشاء تصحيح مع svn diff
, ، ثم فقط قم بتطبيق هذا التصحيح على نسخة العمل الأخرى. على سبيل المثال. في نسخة العمل الأولى التي تقوم بها:
svn diff > patch
ثم تقوم بتطبيقه في الآخر:
patch -p0 < patch
وكالعادة تريد الجري patch
مع ال --dry-run
خيار للتأكد من أنه يعمل أولاً.
ومع ذلك ، إذا لم يكن لدى الفروع نفس تخطيط الملف ، فلا يمكنك فقط أخذ رقعة وتطبيقها. في هذه الحالة ، ما عليك القيام به هو ببساطة مجرد ارتكاب التغييرات المحلية الأخرى ، ثم استخدامها svn merge
كل عادة
نصائح أخرى
يمكنك إنشاء تصحيح على نسخة عمل واحدة (svn diff
) وتطبيقه على الآخر (patch
).
http://ariejan.net/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/
إذا كانت التغييرات تتضمن عمليات الحذف ، فلن يؤدي استخدام رقعة GNU إلى قطعه. إذا كنت تريد التغييرات التي ارتكبتها كلا الفرعين ، فقم بإلغاءهما في واحد ، ثم قم بدمج هذه التغييرات على الفرع الآخر. إذا قمت بالتغييرات في الفرع A وتحتاج إليها في الفرع B بدلاً من ذلك ، فإن SVN تبديل فرعك نسخة عمل إلى الفرع B.