PATCHVIEW(1) Man pages PATCHVIEW(1)

patchview - نمایش فایل‌های شماره‌گذاری‌شده اصلاح‌شده توسط وصله یا پالایش آن‌ها

patchview [[-n] | [--line-number]] [[-p n] | [--strip-match=n]] [--strip=n] [--git-prefixes=strip|keep] [--git-extended-diffs=exclude|include] [--addprefix=PREFIX] [[-s] | [--status]] [[-E] | [--empty-files-as-removed]] [[-i PATTERN] | [--include=PATTERN]] [[-x PATTERN] | [--exclude=PATTERN]] [[-z] | [--decompress]] [[-# RANGE] | [--hunks=RANGE]] [--lines=RANGE] [[-FRANGE] | [--files=RANGE]] [[-H] | [--with-filename]] [[-h] | [--no-filename]] [[-v] | [--verbose]...] [file...]

patchview {[--help] | [--version] | [--filter ...] | [--grep ...]}

اما patchview چیست؟ این ابزار پوسته‌ای (wrapper) برای filterdiff جهت استفاده همراه با فایل‌های شماره‌گذاری‌شده است.

patchview

(بدون آرگومان) معادل است با: lsdiff --number

patchview -F2-

(یا با هر آرگومان دیگری) معادل است با: filterdiff -F2- (یا هر آرگومانی که ارائه شود)

تعداد ۴ اسکریپت برای کار با مخازن git (شامل gitdiff،‏ gitdiffview،‏ gitshow و gitshowview) و ۲ اسکریپت برای svn (شامل svndiff و svndiffview) وجود دارد.

svndiff
gitdiff

(بدون آرگومان) فهرستی از فایل‌های تغییریافته را نمایش می‌دهد.

svndiff -F1
gitdiff -F1

وصله مربوط به فایل شماره ۱ را نمایش می‌دهد.

svndiffview
gitdiffview

تمام وصله‌ها را از طریق filterdiff به vim - -R (در حالت فقط‌خواندنی، با امکان خروج آسان) هدایت می‌کند و وصله کامل را با رنگ‌بندی نمایش می‌دهد.

svndiffview -F2
gitdiffview -F2

(یا هر آرگومان دیگری) وصله فایل شماره ۲ را به vim - -R هدایت می‌کند.

gitshow
gitshowview

این دستور مشابه gitdiff است اما به جای git diff از git show استفاده می‌کند.

-n, --line-number

شماره خطی را که هر وصله از آن آغاز می‌شود نمایش می‌دهد. اگر خروجی با جزئیات بیشتر درخواست شود (با استفاده از -nv)، هر قطعه (hunk) از هر وصله نیز فهرست می‌شود.

برای هر فایل اصلاح‌شده، خطی تولید می‌شود شامل شماره خط شروع وصله، و به دنبال آن یک نویسه Tab و سپس نام فایل تغییریافته. اگر -v یک بار مشخص شود، پس از هر یک از این خطوط یک خط به ازای هر قطعه می‌آید که شامل یک نویسه Tab، شماره خط شروع قطعه، یک نویسه Tab دیگر، رشته “Hunk #” و شماره قطعه (شروع از ۱) خواهد بود.

اگر -v دو بار همراه با -n داده شود (یعنی -nvv)، قالب خروجی کمی متفاوت خواهد بود: متن توضیحی در سطح قطعه پس از هر شماره قطعه نشان داده می‌شود و گزینه --number-files فعال می‌گردد.

-N, --number-files

شماره فایل‌ها با شروع از ۱ پیش از هر نام فایل فهرست می‌شوند.

-#RANGE, --hunks=RANGE

تنها قطعه‌های درون RANGE (محدوده) مشخص‌شده را فهرست می‌کند. قطعه‌ها از ۱ شماره‌گذاری می‌شوند و محدوده فهرستی جداشده با کاما از اعداد یا بازه‌های “first-last” (ابتدا-انتها) است؛ به صورت اختیاری می‌تواند پیشوند اصلاح‌کننده 'x' داشته باشد که کل محدوده را معکوس می‌کند. برای مشخص کردن نامحدود بودن در هر جهت، می‌توان ابتدای بازه یا انتهای آن را حذف کرد.

--lines=RANGE

تنها قطعه‌هایی را فهرست می‌کند که شامل خطوطی از فایل اصلی درون RANGE (محدوده) مشخص‌شده باشند. خطوط از ۱ شماره‌گذاری می‌شوند و محدوده فهرستی جداشده با کاما از اعداد یا بازه‌های “first-last” است که به صورت اختیاری با اصلاح‌کننده 'x' برای معکوس کردن کل محدوده همراه می‌شود؛ ابتدای بازه یا انتهای آن می‌تواند برای نشان دادن نامحدود بودن در آن جهت حذف شود.

-F=RANGE, --files=RANGE

تنها فایل‌های مشخص‌شده در RANGE (محدوده) را فهرست می‌کند. فایل‌ها از ۱ به ترتیبی که در ورودی وصله ظاهر می‌شوند شماره‌گذاری می‌شوند و محدوده فهرستی جداشده با کاما از اعداد یا بازه‌های “first-last” است؛ می‌توان به صورت اختیاری پیشوند اصلاح‌کننده 'x' را برای معکوس کردن کل محدوده به کار برد. ابتدای بازه یا انتهای آن می‌تواند برای نشان دادن عدم محدودیت در آن جهت حذف شود.

-pn, --strip-match=n

هنگام تطبیق، نخستین n بخش از مسیر را نادیده می‌گیرد.

--strip=n

پیش از نمایش، نخستین n بخش از نام مسیر را حذف می‌کند.

--git-prefixes=strip|keep

نحوه مدیریت پیشوندهای a/ و b/ در نام فایل‌های تفاضلی Git. مقدار strip پیشوندها را هم برای تطبیق نام فایل (هنگام استفاده از گزینه‌های -i و -x) و هم برای خروجی نام فایل (مشابه --strip) حذف می‌کند. مقدار keep (پیش‌فرض) رفتار کنونی را حفظ می‌نماید. این گزینه هم برای تفاضل‌های خاص Git (فایل‌های باینری، تغییر نام‌ها، تغییرات حالت دسترسی) و هم تفاضل‌های سنتی که بخشی از وصله Git هستند اعمال می‌شود. نکته: با مقدار keep، عملیات رونوشت (copy) و تغییر نام به جهت یکپارچگی با سایر عملیات Git طوری در نظر گرفته می‌شوند که گویی پیشوندهای a/ و b/ دارند. مقدار پیش‌فرض در نسخه 0.5.0 به strip تغییر خواهد کرد.

--git-extended-diffs=exclude|include

کنترل می‌کند که آیا تفاضل‌های Git بدون قطعه‌های محتوایی سنتی پردازش شوند یا خیر. این شامل تغییر نام‌ها، رونوشت‌ها، تغییرات صرفاً مربوط به حالت مجوز و فایل‌های باینری است. با exclude (پیش‌فرض در 0.4.x)، از این تفاضل‌ها صرف‌نظر می‌شود. با include (پیش‌فرض در نسخه 0.5.0 به بعد)، این تفاضل‌ها به صورت عادی پردازش می‌شوند. این گزینه بر شماره‌گذاری فایل‌ها با -N و پالایش فایل‌ها با -F تأثیر می‌گذارد.

--addprefix=PREFIX

پیش از نمایش نام مسیر، پیشوند PREFIX را به ابتدای آن اضافه می‌کند.

-s, --status

افزودن، تغییر و حذف فایل‌ها را نشان می‌دهد. افزودن فایل با “+”، حذف با “-” و تغییر با “!” مشخص می‌شود.

--empty-files-as-absent, --empty-files-as-removed

برای نمایش افزودن، اصلاح و حذف فایل‌ها، فایل‌های خالی را به عنوان ناموجود در نظر می‌گیرد. برای نمونه، فایلی با نسخه قدیمی خالی و موارد اضافه در نسخه جدید، به جای تغییر (!) به عنوان افزودن فایل (+) در نظر گرفته می‌شود. نکته: برای grepdiff تنها شکل طولانی در دسترس است (زیرا در grepdiff گزینه -E به معنای --extended-regexp است).

-iPATTERN, --include=PATTERN

تنها فایل‌های منطبق با PATTERN (الگو) را شامل می‌شود.

-xPATTERN, --exclude=PATTERN

فایل‌های منطبق با PATTERN (الگو) را مستثنی می‌کند.

-z, --decompress

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

-H, --with-filename

نام فایل وصله‌ای را که حاوی هر وصله است چاپ می‌کند.

-h, --no-filename

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

-v, --verbose

خروجی با جزئیات کامل. برای اسکریپت‌های پوسته git و svn (شامل gitdiff،‏ gitdiffview،‏ gitshow،‏ gitshowview،‏ svndiff و svndiffview)، این گزینه دستور کاملی را که اجرا می‌شود نمایش می‌دهد.

--help

پیام کوتاه راهنمای استفاده را نمایش می‌دهد.

--version

شماره نسخه patchview را نمایش می‌دهد.

--filter

به جای آن مشابه filterdiff(1) عمل می‌کند.

--grep

به جای آن مشابه grepdiff(1) عمل می‌کند.

lsdiff(1), filterdiff(1), grepdiff(1)

می‌توان اسکریپت تک‌خطی زیر را با نام difftotrunk.sh ساخت تا تفاوت‌های دو دایرکتوری یا مخزن svn (شامل trunk و .) را مشاهده کرد:

diff ../trunk . -ru -x .svn | patchview "$@"
./difftotrunk.sh

تمام فایل‌های متفاوت و شماره آن‌ها را نمایش می‌دهد.

./difftotrunk.sh -F3,4

تنها تفاوت‌های فایل‌های شماره ۳ و ۴ را نمایش می‌دهد.

./difftotrunk.sh -F3 -#1

تنها قطعه شماره ۱ از فایل شماره ۳ را نمایش می‌دهد.

./difftotrunk.sh -F3 -#x1

تفاوت‌های فایل شماره ۳ را بدون قطعه شماره ۱ نمایش می‌دهد (علامت x به معنای استثنا کردن است).

Tim Waugh <twaugh@redhat.com>

نگه‌دارنده بسته
02 Jul 2020 patchutils