سؤال

طاب يومكم ،

تحرير:مجرد التفكير أود أن أذكر أن هذا إلى حد ما طويلة السؤال هو ثابت الآن بفضل آدم غود الإجابة أدناه إذا كنت مجرد القشط بينما يمر من خلال.

لقد أعطيت التصحيح إضافة إلى أباتشي 2.2.14 واحدة موحدة مهرجان دبي السينمائي الدولي ليس الترقيع في كل ملف.أنا باستخدام جنو التصحيح 2.5.4.

يجب أن تتجاهل بيضاء لأن الأصل التصحيح لم يكن جيدا ، أيالعديد من ديفس هي على ما يبدو من علامة التبويب -> المساحات التحويلات.هذه الأنواع من ديفس بل هي أقل فائدة لأن التصحيح تم تعديل الملف في مكان ما على طول سلسلة التسليم ، على سبيل المثالإس مستودع ، جيرة النظام, واجهة الويب, إلخ., حتى أن جميع علامات التبويب تم تحويلها إلى مساحات على أي حال!

الأمر الذي أستخدمه على Solaris 10:

/usr/bin/gpatch --verbose --ignore-whitespace -p1 -d . \
    <mod_cache.diff

و الناتج هو:

...

Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Index: httpd/modules/cache/mod_cache.h
|===================================================================
|--- httpd/modules/cache/mod_cache.h
|+++ httpd/modules/cache/mod_cache.h
--------------------------
Patching file modules/cache/mod_cache.h using Plan A...
Hunk #1 succeeded at 24.
Hunk #2 succeeded at 86.
Hunk #3 succeeded at 138.
Hunk #4 succeeded at 163.
Hunk #5 succeeded at 184.
Hunk #6 succeeded at 217.
Hunk #7 succeeded at 271.
Hunk #8 succeeded at 380.

...

لاحظ

Hunk #2 succeeded at 86.

خط.

التصحيح الملف يحتوي على عدة موحدة ديفس لكن الفرق هو:

...

Index: httpd/modules/cache/mod_cache.h
===================================================================
--- httpd/modules/cache/mod_cache.h
+++ httpd/modules/cache/mod_cache.h
@@ -86,9 +86,13 @@
 #define DEFAULT_CACHE_MAXEXPIRE MSEC_ONE_DAY
 #define DEFAULT_CACHE_EXPIRE    MSEC_ONE_HR
 #define DEFAULT_CACHE_LMFACTOR  (0.1)
+#define DEFAULT_CACHE_MAXAGE    5
+#define DEFAULT_CACHE_LOCKPATH "/mod_cache-lock"
+#define CACHE_LOCKNAME_KEY "mod_cache-lockname"
+#define CACHE_LOCKFILE_KEY "mod_cache-lockfile"

-/* Create a set of PROXY_DECLARE(type), PROXY_DECLARE_NONSTD(type) and
- * PROXY_DECLARE_DATA with appropriate export and import tags for the platform
+/* Create a set of CACHE_DECLARE(type), CACHE_DECLARE_NONSTD(type) and
+ * CACHE_DECLARE_DATA with appropriate export and import tags for the platform
  */
 #if !defined(WIN32)
 #define CACHE_DECLARE(type)            type

...

و الجزء ذي الصلة من المصدر ، بعد تطبيق التصحيح (المفترض) ، مع إضافة بعض السياق هو:

...

#define MSEC_ONE_DAY    ((apr_time_t)(86400*APR_USEC_PER_SEC)) /* one day, in microseconds */
#define MSEC_ONE_HR     ((apr_time_t)(3600*APR_USEC_PER_SEC))  /* one hour, in microseconds */
#define MSEC_ONE_MIN    ((apr_time_t)(60*APR_USEC_PER_SEC))    /* one minute, in microseconds */
#define MSEC_ONE_SEC    ((apr_time_t)(APR_USEC_PER_SEC))       /* one second, in microseconds */
#define DEFAULT_CACHE_MAXEXPIRE MSEC_ONE_DAY
#define DEFAULT_CACHE_EXPIRE    MSEC_ONE_HR
#define DEFAULT_CACHE_LMFACTOR  (0.1)

/* Create a set of PROXY_DECLARE(type), PROXY_DECLARE_NONSTD(type) and 
 * PROXY_DECLARE_DATA with appropriate export and import tags for the platform
 */
#if !defined(WIN32)
#define CACHE_DECLARE(type)            type
#define CACHE_DECLARE_NONSTD(type)     type
#define CACHE_DECLARE_DATA
#elif defined(CACHE_DECLARE_STATIC)

...

جميع بقع أخرى يبدو أن يكون إما تم تطبيقها بنجاح أو تجاهلها.

أي أفكار لماذا هذا الخصوص مهرجان دبي السينمائي الدولي ليس أخذ ؟

تحرير: بعد تخفيض التصحيح زغب عامل إلى الصفر كما أوصى آدم أدناه ، فإن التصحيح قد عملت بنجاح.

بفضل آدم غود ، إذا أنا يمكن أن أعطيك آخر التصويت حتى عن الجواب أنا!هنا الفقرة ذات الصلة من أجل زغب في جنو diffutils اليدوي إذا كنت مهتما.

تحرير 2: راجع للشغل هناك ذات التحذير في الجزء السفلي من هذا الزغب الفقرة:

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

للأسف, في هذه الحالة, أنا لا يمكن أن تكون على يقين من أن mod_cache.ساعة هو نفس الرسمية 2.2.14 mod_cache ، ح!)-:

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

المحلول

عند استخدام --ignore-whitespace و لا تستخدم --fuzz=0, أنت في الأساس أقول التصحيح التي ينبغي أن تفعل أفضل جهد التصحيح بدلا من الفشل تماما.لأنه "أفضل جهد" هناك حقا أي وسيلة لضمان أنه سوف يعمل تماما.لهذا السبب, بوابة فيدورا RPM مجموعة --fuzz=0 بشكل افتراضي بحيث أن هذه الأنواع من المشاكل تفشل في التصحيح الوقت (بدلا من ترجمة أو وقت التشغيل).

إذا كنت ترغب في الحفاظ على الملفات الخاصة بك كما المنبع-كتل القطران + بقع ، يجب إعادة التصحيح والتأكد من أنها يمكن أن تنطبق مع --fuzz=0.

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