INTERDIFF(1) Man pages INTERDIFF(1)

interdiff - نمایش تفاوت‌های میان دو فایل وصله (diff)

interdiff [[-p n] | [--strip-match=n]] [[-U n] | [--unified=n]] [[-d PAT] | [--drop-context=PAT]] [[-q] | [--quiet]] [[-z] | [--decompress]] [[-b] | [--ignore-space-change]] [[-B] | [--ignore-blank-lines]] [[-i] | [--ignore-case]] [[-w] | [--ignore-all-space]] [--color=WHEN] [[--interpolate] | [--combine] | [--flip]] [--no-revert-omitted] diff1 diff2

interdiff {[--help] | [--version]}

interdiff یک diff با قالب یکپارچه (unified format) ایجاد می‌کند که بیانگر تفاوت میان دو diff است. هر دو diff باید نسبت به فایل‌های یکسانی باشند. برای کسب بهترین نتیجه، diffها باید دست‌کم سه خط زمینه (context) داشته باشند.

برای معکوس کردن یک وصله، از /dev/null برای diff2 استفاده کنید.

برای کاهش مقدار زمینه (context) در یک وصله، استفاده کنید از:

interdiff -U1 /dev/null patchfile

از آنجا که interdiff این مزیت را ندارد که بتواند فایل‌هایی که قرار است تغییر یابند را بررسی کند، نیازمندی‌های سخت‌گیرانه‌تری نسبت به patch(1) روی قالب ورودی دارد. خروجی GNU diff حتی با افزونه‌ها نیز مناسب خواهد بود، اما اگر قصد دارید از وصله‌ای استفاده کنید که به صورت دستی ویرایش شده است، شاید بهتر باشد ابتدا آفست‌ها و شمارش‌ها را با استفاده از recountdiff(1) اصلاح و مرتب نمایید.

با این حال، توجه داشته باشید که هر دو وصله باید نسبت به نسخه‌های یکسانی از همان مجموعه فایل‌های اصلی باشند.

فایل‌های diff می‌توانند در قالب زمینه‌ای (context format) باشند. با این حال، خروجی در قالب یکپارچه (unified format) خواهد بود.

-h

نادیده گرفته می‌شود؛ جهت سازگاری با نگارش‌های قدیمی‌تر interdiff. این گزینه به‌زودی حذف خواهد شد.

-pn, --strip-match=n

هنگام مقایسه نام فایل‌ها، n مؤلفه ابتدایی مسیر را از هر دو وصله نادیده می‌گیرد. (این مشابه گزینه -p در GNU patch(1) است.) اگر این گزینه مشخص نشود، interdiff به‌طور خودکار تعداد بهینه مؤلفه‌های مسیر را برای حذف، با یافتن کوچک‌ترین مقداری که در آن حداقل یک فایل بین دو وصله مطابقت داشته باشد تعیین می‌کند.

-q, --quiet

خروجی ساکت‌تر. خطوط توضیحی دلیل تغییرات (rationale) را در ابتدای هر وصله منتشر نمی‌کند.

-Un, --unified=n

تلاش برای نمایش n خط از زمینه (نیازمند حداقل n خط زمینه در هر دو فایل ورودی است). (این مشابه گزینه -U در GNU diff(1) است.)

-dPATTERN, --drop-context=PATTERN

هیچ زمینه‌ای (context) را برای فایل‌هایی که با الگوی جانشین (wildcard) شل PATTERN تطابق دارند نمایش نمی‌دهد. این گزینه می‌تواند چندین بار مشخص شود.

توجه داشته باشید که تفسیر الگوی جانشین شل، کاراکترهای اسلش یا نقطه را کاراکتر خاص محسوب نمی‌کند (به بیان دیگر، هیچ فلگی به fnmatch داده نمی‌شود). این امر باعث می‌شود الگوهایی از نوع “*/basename” بتوانند بدون محدود کردن تعداد بخش‌های مسیر به کار روند.

-i, --ignore-case

حروف کوچک و بزرگ را یکسان در نظر می‌گیرد.

-w, --ignore-all-space

تغییرات فاصله‌های خالی (whitespace) را در وصله‌ها نادیده می‌گیرد. همچنین باعث می‌شود هنگام بازسازی فایل‌ها، اعمال وصله فاصله‌های خالی را نادیده بگیرد.

-b, --ignore-space-change

تغییرات در مقدار فاصله‌های خالی را نادیده می‌گیرد.

-B, --ignore-blank-lines

تغییراتی که خطوط آن‌ها کاملاً خالی است را نادیده می‌گیرد.

--color=WHEN

رنگی کردن خروجی؛ WHEN می‌تواند 'never'، 'always' یا 'auto' باشد (پیش‌فرض: auto، برای غیرفعال‌سازی از 'never' استفاده کنید)

-z, --decompress

استخراج و باز کردن فایل‌های فشرده با پسوندهای .gz و .bz2.

--interpolate

اجرا به صورت “interdiff”. این حالت پیش‌فرض است.

--combine

اجرا به صورت “combinediff”. برای اطلاعات بیشتر پیرامون نحوه تغییر رفتار در این حالت، به combinediff(1) مراجعه کنید.

--no-revert-omitted

(تنها برای حالت درونیابی) هنگامی که فایلی توسط وصله نخست تغییر کرده باشد اما توسط وصله دوم نه، آن تغییر را بازگردانی (revert) نمی‌کند.

--help

نمایش یک پیام کوتاه نحوه استفاده و خروج.

--version

نمایش شماره نگارش interdiff.

استفاده پایه:

interdiff -z 3.2pre1.patch.gz 3.2pre2.patch.gz

معکوس کردن یک وصله:

interdiff patch /dev/null

معکوس کردن بخشی از یک وصله (و نادیده گرفتن مابقی آن):

filterdiff -i file.c patchfile | \
  interdiff /dev/stdin /dev/null

در حال حاضر هیچ باگ شناخته‌شده‌ای در interdiff وجود ندارد؛ اما نکاتی وجود دارد. اگر باگی یافتید، لطفاً آن را (به همراه یک مورد آزمایشی کمینه) به Tim Waugh <twaugh@redhat.com> گزارش دهید.

مجموعه‌ای از وصله‌ها وجود دارند که در آن‌ها اطلاعات کافی برای تولید یک interdiff مناسب وجود ندارد. در این حالت، راهبرد اتخاذشده بازگردانی وصله اصلی و اعمال وصله جدید است. متأسفانه این به این معناست که برگشت‌پذیر بودن interdiffها تضمین‌شده نیست.

combinediff(1)

Tim Waugh <twaugh@redhat.com>

نگه‌دارنده بسته

Michael K. Johnson <johnsonm@redhat.com>

مشارکت‌کننده اولیه صفحه راهنما
23 June 2009 patchutils