سؤال

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

على وجه التحديد، سؤالي هو كيفية قراءة / تفسير .rej الملفات patch ينشئ عندما يفشل على عدد قليل من الكملات. معظم مناقشات patch/diff لقد رأيت لا تشمل هذا.

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

المحلول

مثال بسيط:

$ echo -e "line 1\nline 2\nline 3" > a
$ sed -e 's/2/b/' <a >b
$ sed -e 's/2/c/' <a >c
$ diff a b > ab.diff
$ patch c < ab.diff
$ cat c.rej
***************
*** 2
- line 2
--- 2 -----
+ line b

كما ترون: يحتوي الملف القديم على السطر 2 والملف الجديد ينبغي يحتوي على خط ب. ومع ذلك، فإنه يحتوي بالفعل على خط C (هذا غير مرئي في ملف الرفض).

في الواقع، أسهل طريقة لحل هذه المشاكل هي أخذ جزء فرق من ملف .diff / .patch، أدخله في المكان المناسب في الملف المراد تصحيحه ثم مقارنة التعليمات البرمجية باليد لمعرفة، ما الخطوط في الواقع تسبب الصراع.

أو - بدلا من ذلك: احصل على الملف الأصلي (غير محدد)، وتصحيحه وتشغيل دمج ثلاث طرق في الملف.

نصائح أخرى

تهزهز هي أداة رائعة لتطبيق ملفات .REJ عند عدم نجاح التصحيح.

أنا لست خبيرا في التعامل مع ملفات التصحيح، لكن أود إضافة بعض الوضوح حول كيفية قراءتها بناء على فهمي للمعلومات التي تحتوي عليها.

لك .rej سوف تخبرك الملفات:

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

لذلك بالنظر إلى هذه الرسالة، لاحظت في بداية ملف .REJ الخاص بي:

diff a/www/js/app.js b/www/js/app.js (rejected hunks) @@ -4,12 +4,24 @@

أرى ذلك لملفي مشكلتي (www/js/app)، الفرق بين الأصل (لاحظ a/www/js/app.js على السطر الأول) وملف .ريج (لاحظ b/www/js/) يبدأ على الخط 4 من الأصلي وينتهي لمدة 12 خطا (الجزء قبل الفاصلة @@ -4,12, +4,24 @@ على الخط الثاني)، ويبدأ على السطر 4 من الإصدار الجديد من الملف واتركه لمدة 24 خطوط (الجزء بعد فاصلة فيه @@ -4,12, +4,24 @@.

للحصول على مزيد من المعلومات، راجع نظرة عامة ممتازة على ملفات التصحيح (تحتوي على المعلومات التي أراها أعلاه، بالإضافة إلى التفاصيل على الأسطر المضافة و / أو بين إصدارات الملفات) في http://blog.humphd.org/vocamus-906/.

أي تصحيحات أو توضيحات مرحبا بالطبع.

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