'\" t .\" Title: filterdiff .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 23 Jan 2009 .\" Manual: Man pages .\" Source: patchutils .\" Language: Persian .\" .TH "FILTERDIFF" "1" "23 Jan 2009" "patchutils" "Man pages" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" filterdiff \- استخراج یا حذف diffها از یک فایل diff .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBfilterdiff\fR\ 'u \fBfilterdiff\fR [[\-i\ \fIPATTERN\fR] | [\-\-include=\fIPATTERN\fR]] [[\-I\ \fIFILE\fR] | [\-\-include\-from\-file=\fIFILE\fR]] [[\-p\ \fIn\fR] | [\-\-strip\-match=\fIn\fR]] [\-\-strip=\fIn\fR] [\-\-git\-prefixes=\fIstrip|keep\fR] [\-\-git\-extended\-diffs=\fIexclude|include\fR] [\-\-addprefix=\fIPREFIX\fR] [\-\-addoldprefix=\fIPREFIX\fR] [\-\-addnewprefix=\fIPREFIX\fR] [[\-x\ \fIPATTERN\fR] | [\-\-exclude=\fIPATTERN\fR]] [[\-X\ \fIFILE\fR] | [\-\-exclude\-from\-file=\fIFILE\fR]] [[\-v] | [\-\-verbose]] [\-\-clean] [\-\-in\-place] [[\-z] | [\-\-decompress]] [[\-#\ \fIRANGE\fR] | [\-\-hunks=\fIRANGE\fR]] [\-\-lines=\fIRANGE\fR] [[\-F\fIRANGE\fR] | [\-\-files=\fIRANGE\fR]] [\-\-annotate] [\-\-format=\fIFORMAT\fR] [\-\-as\-numbered\-lines=\fIWHEN\fR] [\-\-remove\-timestamps] [\fIfile\fR...] .HP \w'\fBfilterdiff\fR\ 'u \fBfilterdiff\fR {[\-\-help] | [\-\-version] | [\-\-list] | [\-\-grep\ \&.\&.\&.]} .SH "توضیحات (DESCRIPTION)" .PP شما می‌توانید از filterdiff برای دریافت پَچی استفاده کنید که از میان مجموعه‌ای بزرگ‌تر از پچ‌ها، بر روی فایل‌های منطبق با الگوی جانشین (wildcard) پوستهٔ \fIPATTERN\fR اعمال می‌شود\&. برای مثال، جهت مشاهدهٔ پچ‌های درون patch\-2\&.4\&.3\&.gz که بر روی تمامی فایل‌های با نام lp\&.c اعمال می‌شوند: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-z \-i \*(Aq*/lp\&.c\*(Aq patch\-2\&.4\&.3\&.gz .fi .if n \{\ .RE .\} .PP اگر هیچ‌یک از گزینه‌های \fB\-i\fR یا \fB\-x\fR مشخص نشوند، \fB\-i \*(Aq*\*(Aq\fR فرض می‌شود\&. به این ترتیب \fBfilterdiff\fR می‌تواند برای پاک‌سازی یک فایل diff موجود، حذف خطوط زائد از ابتدا (مانند متن بدنهٔ ایمیل) یا میان قطعه‌ها (مانند آنچه در diffهای CVS وجود دارد) استفاده شود\&. برای استخراج داده‌های خالص پچ، از دستوری مانند این استفاده کنید: .sp .if n \{\ .RS 4 .\} .nf filterdiff message\-with\-diff\-in\-the\-body > patch .fi .if n \{\ .RE .\} .PP دستور Filterdiff از قالب‌های diff نوع unified، context و Git پشتیبانی می‌کند\&. قالب Git شامل پشتیبانی از فایل‌های باینری، تغییر نام فایل‌ها، تغییرات سطح دسترسی و دیگر ویژگی‌های اختصاصی diff در Git است\&. .PP توجه داشته باشید که تفسیر الگوی جانشین پوسته، نویسه‌های اسلش یا نقطه را خاص در نظر نمی‌گیرد (به عبارت دیگر، هیچ پرچمی به \fBfnmatch\fR داده نمی‌شود)\&. این بدین منظور است که الگوهایی از نوع \(lq*/basename\(rq بتوانند بدون محدود کردن تعداد بخش‌های مسیر فایل مشخص شوند\&. .PP شما می‌توانید از هر دو قالب diff یعنی unified و context با این برنامه استفاده کنید\&..SH "گزینه‌ها (OPTIONS)" .PP \fB\-i\fR\fIPATTERN\fR, \fB\-\-include=\fR\fB\fIPATTERN\fR\fR .RS 4 تنها فایل‌های منطبق با \fIPATTERN\fR را شامل می‌شود\&. تمام خطوط دیگر در ورودی حذف می‌شوند\&. .RE .PP \fB\-I\fR\fIFILE\fR, \fB\-\-include\-from\-file=\fR\fB\fIFILE\fR\fR .RS 4 تنها فایل‌های منطبق با هر یک از الگوهای فهرست‌شده در \fIFILE\fR (یک الگو در هر خط) را شامل می‌شود\&. تمام خطوط دیگر در ورودی حذف می‌شوند\&. .RE .PP \fB\-x\fR\fIPATTERN\fR, \fB\-\-exclude=\fR\fB\fIPATTERN\fR\fR .RS 4 فایل‌های منطبق با \fIPATTERN\fR را مستثنی می‌کند\&. تمام خطوط دیگر در ورودی نمایش داده می‌شوند\&. .RE .PP \fB\-X\fR\fIFILE\fR, \fB\-\-exclude\-from\-file=\fR\fB\fIFILE\fR\fR .RS 4 فایل‌های منطبق با هر یک از الگوهای فهرست‌شده در \fIFILE\fR (یک الگو در هر خط) را مستثنی می‌کند\&. تمام خطوط دیگر در ورودی نمایش داده می‌شوند\&. .RE .PP \fB\-p\fR\fIn\fR, \fB\-\-strip\-match=\fR\fB\fIn\fR\fR .RS 4 هنگام تطبیق، از \fIn\fR بخش ابتدایی نام مسیر چشم‌پوشی می‌کند\&. .RE .PP \fB\-#\fR\fIRANGE\fR, \fB\-\-hunks\fR=\fIRANGE\fR .RS 4 تنها هانک‌های درون \fIRANGE\fR مشخص‌شده را شامل می‌شود\&. هانک‌ها از ۱ شماره‌گذاری می‌شوند و بازه، فهرستی جداشده با کاما از اعداد یا بازه‌های \(lqfirst\-last\(rq است که می‌تواند به طور اختیاری با یک اصلاح‌کننده \*(Aqx\*(Aq که کل بازه را وارونه می‌کند آغاز شود؛ برای نشان دادن نبود محدودیت در هر جهت، می‌توان مقدار ابتدا یا انتهای بازه را حذف کرد\&. .RE .PP \fB\-\-lines\fR=\fIRANGE\fR .RS 4 تنها هانک‌هایی را شامل می‌شود که حاوی خطوطی از فایل اصلی باشند که در \fIRANGE\fR مشخص‌شده قرار دارند\&. خطوط از ۱ شماره‌گذاری می‌شوند و بازه، فهرستی جداشده با کاما از اعداد یا بازه‌های \(lqfirst\-last\(rq است که می‌تواند به طور اختیاری با یک اصلاح‌کننده \*(Aqx\*(Aq که کل بازه را وارونه می‌کند آغاز شود؛ برای نشان دادن نبود محدودیت در هر جهت، می‌توان مقدار ابتدا یا انتهای بازه را حذف کرد\&. .RE .PP \fB\-F\fR=\fIRANGE\fR, \fB\-\-files\fR=\fIRANGE\fR .RS 4 تنها فایل‌های مشخص‌شده توسط \fIRANGE\fR تعیین‌شده را شامل می‌شود\&. فایل‌ها از ۱ و به ترتیبی که در ورودی وصله ظاهر می‌شوند شماره‌گذاری می‌گردند، و بازه، فهرستی جداشده با کاما از اعداد یا بازه‌های \(lqfirst\-last\(rq است که می‌تواند به طور اختیاری با یک اصلاح‌کننده \*(Aqx\*(Aq که کل بازه را وارونه می‌کند آغاز شود؛ برای نشان دادن نبود محدودیت در هر جهت، می‌توان مقدار ابتدا یا انتهای بازه را حذف کرد\&. .RE .PP \fB\-\-annotate\fR .RS 4 روی هر هانک، نام فایل و شماره هانک را حاشیه‌نویسی می‌کند\&. .RE .PP \fB\-\-format\fR=unified|context .RS 4 استفاده از قالب خروجی مشخص‌شده\&. .RE .PP \fB\-\-strip\fR=\fIn\fR .RS 4 حذف \fIn\fR بخش ابتدایی نام مسیرها در خروجی\&. .RE .PP \fB\-\-git\-prefixes\fR=\fIstrip|keep\fR .RS 4 نحوه مدیریت پیشوندهای a/ و b/ در نام فایل‌های diff مربوط به Git\&. با strip، پیشوندها هم برای تطبیق نام فایل (هنگام استفاده از گزینه‌های \fB\-i\fR و \fB\-x\fR) و هم برای خروجی نام فایل (مشابه \fB\-\-strip\fR) حذف می‌شوند\&. با keep (پیش‌فرض)، رفتار کنونی حفظ می‌شود\&. برای هر دو مورد diffهای اختصاصی Git (فایل‌های باینری، تغییر نام‌ها، تغییرات حالت) و diffهای سنتی که بخشی از یک وصله Git هستند اِعمال می‌شود\&. نکته: با keep، عملیات رونوشت و تغییر نام به گونه‌ای رفتار می‌شوند که گویی دارای پیشوندهای a/ و b/ هستند تا با سایر عملیات Git سازگار باشند\&. مقدار پیش‌فرض در نسخه 0\&.5\&.0 به strip تغییر خواهد کرد\&. .RE .PP \fB\-\-git\-extended\-diffs\fR=\fIexclude|include\fR .RS 4 کنترل می‌کند که آیا diffهای Git بدون هانک‌های محتوای سنتی پردازش شوند یا خیر\&. این شامل تغییر نام‌ها، رونوشت‌ها، تغییرات صرفاً در حالت (mode) و فایل‌های باینری است\&. با exclude (پیش‌فرض در 0\&.4\&.x)، از این diffها صرف‌نظر می‌شود\&. با include (پیش‌فرض در +0\&.5\&.0)، این diffها به طور عادی پردازش می‌شوند\&. این گزینه بر شماره‌گذاری فایل‌ها با \fB\-N\fR و فیلتر کردن فایل‌ها با \fB\-F\fR تأثیر می‌گذارد\&. .RE .PP \fB\-\-addprefix\fR=\fIPREFIX\fR .RS 4 افزودن \fIPREFIX\fR به عنوان پیشوند به نام مسیرها در خروجی\&. این گزینه بر هرگونه تنظیمات جداگانه مشخص‌شده با گزینه‌های \fB\-\-addoldprefix\fR یا \fB\-\-addnewprefix\fR ارجحیت دارد\&. .RE .PP \fB\-\-addoldprefix\fR=\fIPREFIX\fR .RS 4 افزودن \fIPREFIX\fR به عنوان پیشوند به نام مسیرهای فایل‌های قدیمی یا اصلی در خروجی\&. .RE .PP \fB\-\-addnewprefix\fR=\fIPREFIX\fR .RS 4 افزودن \fIPREFIX\fR به عنوان پیشوند به نام مسیرهای فایل‌های به‌روزرسانی‌شده یا جدید در خروجی\&. .RE .PP \fB\-\-as\-numbered\-lines\fR=before|after|original\-before|original\-after .RS 4 به جای یک قطعه از وصله، خطوط هانک‌های انتخاب‌شده را همراه با شماره خط فایل پیش از (یا پس از) اِعمال وصله نمایش می‌دهد، که در ابتدای هر خط به دنبال آن یک نویسه TAB و یک دونقطه قرار می‌گیرد\&. پیش از هر هانک به جز هانک اول، خطی متشکل از \(lq\&.\&.\&.\(rq قرار خواهد گرفت\&. .sp گزینه‌های before و after شماره خطوط را با احتساب هانک‌های نادیده‌گرفته‌شده نشان می‌دهند\&. گزینه‌های original\-before و original\-after شماره خطوط را همان‌گونه که در diff اصلی ظاهر می‌شوند نمایش می‌دهند و بافت اصلی شماره خط را حفظ می‌کنند\&. این قابلیت برای سامانه‌های CI/CD که نیاز به گزارش خطاها بر روی شماره خطوط دقیق diff اصلی دارند مفید است\&. .RE .PP \fB\-\-remove\-timestamps\fR .RS 4 برچسب‌های زمانی فایل را در خروجی درج نمی‌کند\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 همیشه خطوط غیر diff را در خروجی نمایش می‌دهد\&. به طور پیش‌فرض، خطوط غیر diff تنها زمانی نمایش داده می‌شوند که یک الگوی نام فایل مستثنی شده باشد\&. .RE .PP \fB\-\-clean\fR .RS 4 همیشه تمام خطوط غیر diff را از خروجی حذف می‌کند؛ حتی هنگامی که یک الگوی نام فایل مستثنی شده باشد\&. .RE .PP \fB\-\-in\-place\fR .RS 4 خروجی را به جای خروجی استاندارد، مستقیماً در فایل‌های ورودی اصلی می‌نویسد\&. این امر امکان فیلتر کردن چندین فایل وصله را بدون نیاز به حلقه‌های تغییر مسیر دستی فراهم می‌کند\&. .RE .PP \fB\-z\fR, \fB\-\-decompress\fR .RS 4 فایل‌های دارای پسوند \&.gz و \&.bz2 را از حالت فشرده خارج می‌کند\&. .RE .PP \fB\-\-help\fR .RS 4 نمایش پیام کوتاه راهنمای استفاده\&. .RE.PP \fB\-\-version\fR .RS 4 نمایش شماره نسخه filterdiff\&. .RE .PP \fB\-\-list\fR .RS 4 در عوض مانند \fBlsdiff\fR(1) عمل می‌کند\&. .RE .PP \fB\-\-grep\fR .RS 4 در عوض مانند \fBgrepdiff\fR(1) عمل می‌کند\&. .RE .SH "مثال‌ها (EXAMPLES)" .PP برای مشاهده تمام قطعات وصله (hunkها) که بر پنج خط اول یک فایل C اثر می‌گذارند: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-i \*(Aq*\&.c\*(Aq \-\-lines=\-5 < patch .fi .if n \{\ .RE .\} .PP برای مشاهده نخستین قطعه از وصله هر فایل، استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-#1 patchfile .fi .if n \{\ .RE .\} .PP برای مشاهده وصله‌هایی که یک فایل ChangeLog را در یک زیرپوشه تغییر می‌دهند، استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-p1 Changelog .fi .if n \{\ .RE .\} .PP برای دیدن وصله‌های کامل به ازای هر وصله‌ای که خط ۱ از فایل اصلی را تغییر می‌دهد، استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-\-lines=1 patchfile | lsdiff | \e xargs \-rn1 filterdiff patchfile \-i .fi .if n \{\ .RE .\} .PP برای دیدن تمام قطعات به جز قطعه اول از یک وصله خاص، می‌توانید استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-p1 \-i file\&.c \-#2\- foo\-patch .fi .if n \{\ .RE .\} .PP اگر فهرست کاملاً مشخصی از قطعات در یک وصله دارید که می‌خواهید آن‌ها را ببینید، آن‌ها را فهرست کنید: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-#1,2,5\-8,10,12,27\- .fi .if n \{\ .RE .\} .PP برای مشاهده خطوط فایل‌هایی که وصله خواهند شد به همان صورتی که پس از اعمال وصله نمایان می‌شوند، استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-\-as\-numbered\-lines=after patch\&.file .fi .if n \{\ .RE .\} .PP می‌توانید همان زمینه را پیش از اعمال وصله مشاهده کنید با: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-\-as\-numbered\-lines=before patch\&.file .fi .if n \{\ .RE .\} .PP برای سامانه‌های CI/CD که نیازمند شماره خطوط منطبق با زمینه diff اصلی هستند (مفید برای گزارش خطا)، از گونه‌های original\-* استفاده کنید: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-\-as\-numbered\-lines=original\-after patch\&.file .fi .if n \{\ .RE .\} .PP همچنین می‌توان از filterdiff برای تبدیل بین قالب‌های diff از نوع unified و context استفاده کرد: .sp .if n \{\ .RS 4 .\} .nf filterdiff \-v \-\-format=unified context\&.diff .fi .if n \{\ .RE .\} .PP قالب‌های diff در Git به طور کامل پشتیبانی می‌شوند، از جمله فایل‌های باینری، تغییر نام فایل‌ها و تغییرات حالت مجوزها\&..SH "همچنین ببینید (SEE ALSO)" .PP \fBlsdiff\fR(1), \fBgrepdiff\fR(1), \fBpatchview\fR(1) .SH "نویسنده (AUTHOR)" .PP \fBTim Waugh\fR <\&twaugh@redhat.com\&> .RS 4 نگه‌دارندهٔ بسته .RE