سؤال

ولدي بعض التغييرات المحلية لمشروع مفتوح المصدر والذي يستخدم التخريب كما تحكم مصدره. (ليس لدي ارتكاب الحصول على مستودع المشروع الأصلي).

وبلدي التغيير يضيف الملف، ولكن لم يتم تضمين هذا الملف في إخراج "فرق إس". (قد يكون من الجدير بالذكر أن الملف الجديد هو، وليس نص عادي ثنائي).

وكيف يمكنني تقديم التصحيح الذي يتضمن ملفات جديدة؟


 $ svn st
   A      tests/foo.zip
 $ svn diff
 $
هل كانت مفيدة؟

المحلول

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

نصائح أخرى

ولقد واجهت سلوك مماثل لPozsar. وجوابه عملت بالنسبة لي أفضل من المعتاد في --force إس فرق. ومع ذلك، إذا تشغيل على جهاز DOS (على سبيل المثال عن طريق سيغوين)، قد تحتاج إلى تعديل إجابته قليلا. وفرق + التصحيح التالية عمل لترميم بلدي النص + الملفات الثنائية في سيغوين باستخدام ARG --binary:

svn diff --force --diff-cmd /usr/bin/diff -x "-au --binary" OLD-URL NEW-URL > mybinarydiff.diff

patch -p0 --binary -i mybinarydiff.diff

وهناك خيار --force إلى الأمر فرق، ولكنها تنتج ملف التصحيح غير صحيح الثنائيات على الجهاز الخاص بي. استخدامه مع خيار --diff-كمد يعمل بالنسبة لي على الرغم من:

svn diff --force --diff-cmd /usr/bin/diff -x -au

وأعتقد أن هذا تنتج بالضبط ما تريد.

إذا كنت بناء التصحيح، قد ترغب في استخدام العادي القديم "فرق" مع خيار --new ملف الذي يعالج الملف المفقود كما فارغة.

لاحظ أن بناء الجملة من أجل هذا الخيار في الواقع قد تختلف اعتمادا على ما نسخة من فرق سهل القديمة الذي تستخدمه.

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