.\" This is the man page for CVS. It is auto-generated from the .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes .\" there. A full copyright & license notice may also be found in cvs.texinfo. .\" .\" Man page autogeneration, including this header file, is .\" Copyright 2004-2005 The Free Software Foundation, Inc., .\" Derek R. Price, & Ximbiot . .\" .\" This documentation is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This documentation is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this documentation; if not, write to the Free Software .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. .de Id .ds Rv \\$3 .ds Dt \\$4 .. .TH CVS 1 .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .\" quoted command .de ` .RB ` "\|\\$1\|" '\\$2 .. .SH "NAME - نام" cvs \- سامانه نسخه‌های همگام (Concurrent Versions System) .SH "SYNOPSIS - خلاصه‌ی دستورات" .TP \fBcvs\fP [ \fIcvs_options\fP ] .I cvs_command [ .I command_options ] [ .I command_args ] .SH "NOTE - یادداشت" .IX "revision control system" "\fLcvs\fR" .IX cvs "" "\fLcvs\fP \- concurrent versions system" .IX "concurrent versions system \- \fLcvs\fP" .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX revisions "cvs command" "" "\fLcvs\fP \- source control" این صفحه راهنما خلاصه‌ای از برخی ویژگی‌های \fBcvs\fP است. این متن به‌صورت خودکار از پیوست راهنمای CVS تولید شده است. برای مستندات جامع‌تر و دقیق‌تر، لطفاً به راهنمای Cederqvist (از طریق دستور .B info CVS یا روش‌های دیگر، همان‌گونه که در بخش SEE ALSO این صفحه راهنما آمده است) مراجعه کنید. ارجاعات متقابل در این صفحه راهنما به گره‌های همان راهنما اشاره دارند. .SH "CVS commands - دستورهای CVS" .SS "Guide to CVS commands - راهنمای دستورهای CVS" .SP این پیوست ساختار کلی دستورهای \fBcvs\fR را شرح می‌دهد و برخی دستورها را با جزئیات بیان می‌کند (دستورهای دیگر در جاهای دیگر شرح داده شده‌اند؛ برای یک مرجع سریع از دستورهای \fBcvs\fR، به گره `Invoking CVS\(aq در راهنمای CVS مراجعه کنید). .SP .SH "Structure - ساختار" .SS "Overall structure of CVS commands - ساختار کلی دستورهای CVS" .IX "Structure" .IX "CVS command structure" .IX "Command structure" .IX "Format of CVS commands" .SP قالب کلی همه دستورهای \fBcvs\fR به این صورت است: .SP .PD 0 .SP .IP "" 2 cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ] .PD .IP "" 0 .SP .IP "" 0 \fBcvs\fR .IP "" 2 نام برنامه \fBcvs\fR. .SP .IP "" 0 \fBcvs_options\fR .IP "" 2 گزینه‌هایی که بر تمام زیردستورهای \fBcvs\fR تأثیر می‌گذارند. این موارد در ادامه شرح داده شده‌اند. .SP .IP "" 0 \fBcvs_command\fR .IP "" 2 یکی از چندین زیردستور مختلف. برخی از دستورها دارای نام‌های مستعاری هستند که می‌توان به جای آن‌ها استفاده کرد؛ این نام‌های مستعار در راهنمای مرجع مربوط به آن دستور ذکر شده‌اند. تنها در دو حالت می‌توانید \fBcvs_command\fR را حذف کنید: \fBcvs -H\fR فهرستی از دستورهای موجود را نمایش می‌دهد، و \fBcvs -v\fR اطلاعات نگارش خودِ \fBcvs\fR را نشان می‌دهد. .SP .IP "" 0 \fBcommand_options\fR .IP "" 2 گزینه‌های مخصوص آن دستور. .SP .IP "" 0 \fBcommand_args\fR .IP "" 2 آرگومان‌های ارسالی به دستورها. .SP متأسفانه کمی سردرگمی میان \fBcvs_options\fR و \fBcommand_options\fR وجود دارد. هنگامی که گزینه‌ای به عنوان یک \fBcvs_option\fR ارائه می‌شود، برخی گزینه‌ها تنها بر برخی از دستورها تأثیر می‌گذارند. زمانی که به عنوان یک \fBcommand_option\fR داده می‌شود ممکن است معنای متفاوتی داشته باشد، و توسط دستورهای بیشتری پذیرفته شود. به عبارت دیگر، دسته‌بندی فوق را خیلی جدی نگیرید. در عوض به مستندات مربوطه مراجعه کنید. .SP .SH "وضعیت خروج (Exit status)" .SS "وضعیت خروج CVS (CVS\(aqs exit status)" .IX "Exit status, of CVS" .SP دستور \fBcvs\fR می‌تواند با تنظیم \fIexit status\fR (وضعیت خروج) خود، موفقیت‌آمیز بودن یا شکست را به محیط فراخواننده اعلام کند. روش دقیق آزمایش وضعیت خروج از یک سیستم‌عامل به سیستم‌عامل دیگر متفاوت خواهد بود. برای نمونه در یک اسکریپت شل یونیکس، اگر آخرین دستور وضعیت خروج موفقیت‌آمیز برگردانده باشد متغیر \fB$?\fR برابر ۰ خواهد بود، و اگر وضعیت خروج نشان‌دهنده شکست باشد، بزرگ‌تر از ۰ خواهد بود. .SP اگر \fBcvs\fR موفقیت‌آمیز باشد، یک وضعیت موفقیت برمی‌گرداند؛ اگر خطایی رخ دهد، یک پیام خطا چاپ کرده و وضعیت شکست برمی‌گرداند. تنها استثنا برای این موضوع دستور \fBcvs diff\fR است. این دستور در صورتی که هیچ تفاوتی نیابد وضعیت موفقیت برمی‌گرداند، و اگر تفاوتی وجود داشته باشد یا خطایی رخ داده باشد، وضعیت شکست برمی‌گرداند. از آنجا که این رفتار روش مناسبی برای تشخیص خطاها فراهم نمی‌کند، در آینده ممکن است \fBcvs diff\fR تغییر یابد تا مانند سایر دستورهای \fBcvs\fR رفتار کند. .SP .SH "~/.cvsrc (~/.cvsrc)" .SS "گزینه‌های پیش‌فرض و پرونده ~/.cvsrc (Default options and the ~/.cvsrc file)" .IX "\&.cvsrc file" .IX "Option defaults" .SP برخی \fBcommand_options\fR وجود دارند که آن‌قدر مکرر استفاده می‌شوند که ممکن است برای اطمینان از این‌که همیشه آن گزینه را مشخص می‌کنید، یک نام مستعار (alias) یا روش دیگری تنظیم کرده باشید. یک نمونه (که در واقع انگیزه اصلی پیاده‌سازی پشتیبانی از \fB.cvsrc\fR بود) این است که بسیاری از افراد خروجی پیش‌فرض دستور \fBdiff\fR را بسیار دشوار برای خواندن می‌دانند، و معتقدند قالب‌های context diff یا unidiff بسیار آسان‌تر فهمیده می‌شوند. .SP پرونده \fB~/.cvsrc\fR راهکاری است که از طریق آن می‌توانید گزینه‌های پیش‌فرضی را به \fBcvs_commands\fR در درون cvs اضافه کنید، به جای آنکه به نام‌های مستعار یا سایر اسکریپت‌های شل متکی باشید. .SP قالب پرونده \fB~/.cvsrc\fR ساده است. پرونده برای یافتن خطی جستجو می‌شود که با همان نام \fBcvs_command\fR در حال اجرا آغاز گردد. اگر تطابقی یافت شود، باقی‌مانده خط (در محل نویسه‌های فاصله) به گزینه‌های جداگانه تقسیم شده و \fIپیش از\fR هر گزینه‌ای از خط فرمان، به آرگومان‌های دستور افزوده می‌شود. .SP اگر یک دستور دو نام داشته باشد (برای نمونه، \fBcheckout\fR و \fBco\fR)، نام رسمی، و نه لزوماً نامی که در خط فرمان به کار رفته است، برای تطابق با پرونده استفاده خواهد شد. بنابراین اگر محتوای پرونده \fB~/.cvsrc\fR کاربر به این صورت باشد: .SP .PD 0 .SP .IP "" 2 log -N .IP "" 2 diff -uN .IP "" 2 rdiff -u .IP "" 2 update -Pd .IP "" 2 checkout -P .IP "" 2 release -d .PD .IP "" 0 .SP به آرگومان‌های دستور \fBcvs checkout foo\fR و همچنین \fBcvs co foo\fR، گزینه \fB-P\fR افزوده خواهد شد. .SP با پرونده نمونه بالا، خروجی دستور \fBcvs diff foobar\fR در قالب unidiff خواهد بود. دستور \fBcvs diff -c foobar\fR مانند معمول خروجی context diff را ارائه می‌دهد. دریافت تفاوت‌ها با قالب "قدیمی" کمی پیچیده‌تر خواهد بود، چرا که \fBdiff\fR گزینه‌ای برای تعیین استفاده از قالب "قدیمی" ندارد، بنابراین به \fBcvs -f diff foobar\fR نیاز خواهید داشت. .SP به جای نام دستور می‌توانید از \fBcvs\fR برای مشخص کردن گزینه‌های سراسری استفاده کنید (به گره `Global options\(aq در راهنمای CVS مراجعه کنید). برای نمونه، خط زیر در \fB.cvsrc\fR .SP .PD 0 .SP .IP "" 2 cvs -z6 .PD .IP "" 0 .SP باعث می‌شود \fBcvs\fR از سطح فشرده‌سازی ۶ استفاده کند. .SP .SH "گزینه‌های سراسری (Global options)" .IX "Options, global" .IX "Global options" .IX "Left-hand options" .SP گزینه‌های در دسترس \fBcvs_options\fR (که در سمت چپ \fBcvs_command\fR قرار می‌گیرند) عبارتند از: .SP .IP "" 0 \fB--allow-root=\fIrootdir\fB\fR .IP "" 2 دایرکتوری مجاز \fBcvsroot\fR را مشخص می‌کند. به `Password authentication server\(aq در راهنمای CVS مراجعه کنید. .SP .IX "Authentication, stream" .IX "Stream authentication" .IP "" 0 \fB-a\fR .IP "" 2 تمام ارتباطات میان کلاینت و سرور را احراز هویت می‌کند. تنها بر کلاینت \fBcvs\fR تأثیر دارد. در زمان نگارش این متن، این قابلیت تنها هنگام استفاده از یک اتصال GSSAPI پیاده‌سازی شده است (به گره `GSSAPI authenticated\(aq در راهنمای CVS مراجعه کنید). احراز هویت از انواع خاصی از حملات مبتنی بر ربودن اتصال فعال \fBtcp\fR جلوگیری می‌کند. فعال کردن احراز هویت، رمزنگاری را فعال نمی‌کند. .SP .IX "RCSBIN, overriding" .IX "Overriding RCSBIN" .IP "" 0 \fB-b \fIbindir\fB\fR .IP "" 2 در \fBcvs\fR نسخه 1.9.18 و قدیمی‌تر، این گزینه مشخص می‌کرد که برنامه‌های \fBrcs\fR در دایرکتوری \fIbindir\fR قرار دارند. نسخه‌های کنونی \fBcvs\fR برنامه‌های \fBrcs\fR را اجرا نمی‌کنند؛ برای سازگاری، این گزینه پذیرفته می‌شود، اما هیچ کاری انجام نمی‌دهد. .SP .IX "TMPDIR, overriding" .IX "Overriding TMPDIR" .IP "" 0 \fB-T \fItempdir\fB\fR .IP "" 2 از \fItempdir\fR به عنوان دایرکتوری محل قرارگیری پرونده‌های موقت استفاده می‌کند. مقدار تنظیم‌شده متغیر محیطی \fB$TMPDIR\fR و هر دایرکتوری از پیش کامپایل‌شده‌ای را بازنویسی می‌کند. این پارامتر باید به عنوان یک نام مسیر مطلق مشخص شود. (هنگام اجرای کلاینت/سرور، \fB-T\fR تنها بر فرایند محلی تأثیر می‌گذارد؛ مشخص کردن \fB-T\fR برای کلاینت هیچ اثری روی سرور ندارد و برعکس.) .SP .IX "CVSROOT, overriding" .IX "Overriding CVSROOT" .IP "" 0 \fB-d \fIcvs_root_directory\fB\fR .IP "" 2 از \fIcvs_root_directory\fR به عنوان نام مسیر دایرکتوری ریشه مخزن استفاده می‌کند. مقدار تنظیم‌شده متغیر محیطی \fB$CVSROOT\fR را بازنویسی می‌کند. به `Repository\(aq در راهنمای CVS مراجعه کنید. .SP .IX "EDITOR, overriding" .IX "Overriding EDITOR" .IP "" 0 \fB-e \fIeditor\fB\fR .IP "" 2 از \fIeditor\fR برای وارد کردن اطلاعات ثبت بازنگری (revision log) استفاده می‌کند. مقدار تنظیم‌شده متغیرهای محیطی \fB$CVSEDITOR\fR و \fB$EDITOR\fR را بازنویسی می‌کند. برای اطلاعات بیشتر، به `Committing your changes\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-f\fR .IP "" 2 پرونده \fB~/.cvsrc\fR را نمی‌خواند. این گزینه بیشتر به دلیل عدم تعامد (non-orthogonality) مجموعه گزینه‌های \fBcvs\fR به کار می‌رود. برای نمونه، گزینه \fB-N\fR در \fBcvs log\fR (غیرفعال کردن نمایش نام‌های برچسب) گزینه متناظری برای فعال کردن نمایش ندارد. بنابراین اگر در مدخل مربوط به \fBlog\fR در \fB~/.cvsrc\fR گزینه \fB-N\fR را داشته باشید، ممکن است برای نمایش نام‌های برچسب نیاز به استفاده از \fB-f\fR داشته باشید. .SP .IP "" 0 \fB-H\fR .IP "" 2 .IP "" 0 \fB--help\fR .IP "" 2 اطلاعات نحوه استفاده از \fBcvs_command\fR مشخص‌شده را نمایش می‌دهد (اما دستور را عملاً اجرا نمی‌کند). اگر نام دستوری را مشخص نکنید، \fBcvs -H\fR راهنمای کلی برای \fBcvs\fR را شامل فهرستی از سایر گزینه‌های راهنما نمایش می‌دهد. .SP .IX "Read-only mode" .IP "" 0 \fB-n\fR .IP "" 2 هیچ پرونده‌ای را تغییر نمی‌دهد. تلاش می‌کند \fBcvs_command\fR را اجرا کند، اما صرفاً برای صدور گزارش‌ها؛ هیچ پرونده موجودی را حذف، به‌روزرسانی یا ادغام نمی‌کند، و هیچ پرونده جدیدی نمی‌سازد. .SP توجه داشته باشید که \fBcvs\fR لزوماً خروجی دقیقاً یکسانی نسبت به حالت بدون \fB-n\fR تولید نخواهد کرد. در برخی موارد خروجی یکسان خواهد بود، اما در موارد دیگر \fBcvs\fR از برخی پردازش‌هایی که برای تولید خروجی دقیقاً یکسان مورد نیاز بوده است، صرف‌نظر خواهد کرد. .SP .IP "" 0 \fB-Q\fR .IP "" 2 باعث می‌شود دستور کاملاً ساکت باشد؛ این دستور تنها برای مشکلات جدی خروجی تولید خواهد کرد. .SP .IP "" 0 \fB-q\fR .IP "" 2 باعث می‌شود دستور تا حدی ساکت باشد؛ پیام‌های اطلاعاتی، مانند گزارش‌های پیمایش بازگشتی در زیرشاخه‌ها، متوقف (نادیده گرفته) می‌شوند. .SP .IX "Read-only files, and -r" .IP "" 0 \fB-r\fR .IP "" 2 فایل‌های کاری جدید را فقط‌خواندنی می‌کند. اثری مشابه با زمانی دارد که متغیر محیطی \fB$CVSREAD\fR تنظیم شده باشد (به گره `Environment variables\(aq در راهنمای CVS مراجعه کنید). حالت پیش‌فرض، قابل‌نوشتن کردن فایل‌های کاری است، مگر اینکه نظارت‌ها (watches) فعال باشند (به گره `Watches\(aq در راهنمای CVS مراجعه کنید). .SP .IP "" 0 \fB-s \fIvariable\fB=\fIvalue\fB\fR .IP "" 2 یک متغیر کاربری تنظیم می‌کند (به گره `Variables\(aq در راهنمای CVS مراجعه کنید). .SP .IX "Trace" .IP "" 0 \fB-t\fR .IP "" 2 ردیابی اجرای برنامه؛ نمایش پیام‌هایی که مراحل فعالیت \fBcvs\fR را نشان می‌دهند. به‌ویژه همراه با \fB-n\fR برای بررسی تأثیر احتمالی یک دستور ناآشنا مفید است. .SP .IP "" 0 \fB-v\fR .IP "" 2 .IP "" 0 \fB--version\fR .IP "" 2 اطلاعات نسخه و حق نشر را برای \fBcvs\fR نمایش می‌دهد. .SP .IX "CVSREAD, overriding" .IX "Overriding CVSREAD" .IP "" 0 \fB-w\fR .IP "" 2 فایل‌های کاری جدید را خواندنی-نوشتنی می‌کند. تنظیمات متغیر محیطی \fB$CVSREAD\fR را لغو می‌کند. فایل‌ها به‌طور پیش‌فرض خواندنی-نوشتنی ایجاد می‌شوند، مگر اینکه \fB$CVSREAD\fR تنظیم شده باشد یا \fB-r\fR مشخص شده باشد. .SP .IP "" 0 \fB-x\fR .IP "" 2 .IX "Encryption" تمام ارتباطات میان کلاینت و سرور را رمزگذاری می‌کند. تنها بر کلاینت \fBcvs\fR اثر می‌گذارد. در زمان نگارش این راهنما، این قابلیت تنها هنگام استفاده از یک اتصال GSSAPI (به گره `GSSAPI authenticated\(aq در راهنمای CVS مراجعه کنید) یا یک اتصال Kerberos (به گره `Kerberos authenticated\(aq در راهنمای CVS مراجعه کنید) پیاده‌سازی شده است. فعال‌سازی رمزگذاری مستلزم این است که ترافیک پیام‌ها نیز احراز اصالت شود. پشتیبانی از رمزگذاری به‌طور پیش‌فرض در دسترس نیست؛ هنگام ساخت \fBcvs\fR باید با استفاده از گزینه پیکربندی ویژه، \fB--enable-encryption\fR، فعال شود. .SP .IP "" 0 \fB-z \fIgzip-level\fB\fR .IP "" 2 .IX "Compression" .IX "Gzip" سطح فشرده‌سازی را تعیین می‌کند. سطوح معتبر از 1 (سرعت بالا، فشرده‌سازی کم) تا 9 (سرعت کم، فشرده‌سازی بالا)، یا 0 برای غیرفعال کردن فشرده‌سازی (پیش‌فرض) هستند. تنها بر کلاینت \fBcvs\fR اثر می‌گذارد. .SP .SP .SH "Common options - گزینه‌های مشترک" .SS "Common command options - گزینه‌های مشترک دستورات" .IX "Common options" .IX "Right-hand options" .SP این بخش \fBcommand_options\fRهایی را شرح می‌دهد که در چندین دستور \fBcvs\fR در دسترس هستند. این گزینه‌ها همواره در سمت راست \fBcvs_command\fR قرار می‌گیرند. همه دستورها از تمام این گزینه‌ها پشتیبانی نمی‌کنند؛ هر گزینه تنها برای دستوراتی پشتیبانی می‌شود که در آن‌ها کاربرد دارد. با این حال، هنگامی که دستوری یکی از این گزینه‌ها را دارد، تقریباً همیشه می‌توانید روی همان رفتار گزینه مانند سایر دستورات حساب کنید. (سایر گزینه‌های دستور، که همراه با دستورات به‌طور جداگانه فهرست شده‌اند، ممکن است از یک دستور \fBcvs\fR به دستور دیگر رفتار متفاوتی داشته باشند). .SP \fBدستور \fBhistory\fB یک استثنا است؛ این دستور از گزینه‌های متعددی پشتیبانی می‌کند که حتی با این گزینه‌های استاندارد نیز در تضاد هستند.\fR .SP .IX "Dates" .IX "Time" .IX "Specifying dates" .IP "" 0 \fB-D \fIdate_spec\fB\fR .IP "" 2 از تازه‌ترین ویرایشی که پس از \fIdate_spec\fR نباشد استفاده می‌کند. \fIdate_spec\fR یک آرگومان منفرد است، شرح تاریخی که تاریخی در گذشته را مشخص می‌کند. .SP این مشخصه هنگامی که برای ایجاد یک نسخه کپی شخصی از یک فایل مبدأ استفاده می‌شود، \fIچسبنده\fR (sticky) است؛ بدین معنا که وقتی با استفاده از \fB-D\fR یک فایل کاری دریافت می‌کنید، \fBcvs\fR تاریخی را که مشخص کرده‌اید ثبت می‌کند، به‌طوری‌که به‌روزرسانی‌های بعدی در همان شاخه از همان تاریخ استفاده خواهند کرد (برای اطلاعات بیشتر درباره برچسب‌ها/تاریخ‌های چسبنده، به گره `Sticky tags\(aq در راهنمای CVS مراجعه کنید). .SP گزینه \fB-D\fR با دستورهای \fBannotate\fR، \fBcheckout\fR، \fBdiff\fR، \fBexport\fR، \fBhistory\fR، \fBrdiff\fR، \fBrtag\fR، و \fBupdate\fR در دسترس است. (دستور \fBhistory\fR از این گزینه به روشی کمی متفاوت استفاده می‌کند؛ به گره `history options\(aq در راهنمای CVS مراجعه کنید). .SP .IX "Timezone, in input" .IX "Zone, time, in input" تنوع گسترده‌ای از قالب‌های تاریخ توسط \fBcvs\fR پشتیبانی می‌شود. استانداردترین آن‌ها ISO8601 (از سازمان بین‌المللی استانداردسازی) و استاندارد ایمیل اینترنت (مشخص‌شده در RFC822 اصلاح‌شده با RFC1123) هستند. .SP تاریخ‌های ISO8601 گونه‌های متعددی دارند اما چند نمونه عبارتند از: .SP .PD 0 .SP .IP "" 4 1972-09-24 .IP "" 4 1972-09-24 20:05 .PD .IP "" 2 .SP قالب‌های تاریخ ISO8601 بسیار بیشتری وجود دارند، و \fBcvs\fR بسیاری از آن‌ها را می‌پذیرد، اما احتمالاً تمایل ندارید \fIکل\fR ماجرای طولانی را بشنوید :-). .SP علاوه بر تاریخ‌های مجاز در خود ایمیل اینترنت، \fBcvs\fR همچنین اجازه می‌دهد برخی فیلدها حذف شوند. برای مثال: .SP .PD 0 .SP .IP "" 4 24 Sep 1972 20:05 .IP "" 4 24 Sep .PD .IP "" 2 .SP تاریخ در منطقه زمانی محلی تفسیر می‌شود، مگر اینکه منطقه زمانی مشخصی تعیین شده باشد. .SP این دو قالب تاریخ ارجحیت دارند. با این حال، \fBcvs\fR در حال حاضر تنوع گسترده‌ای از سایر قالب‌های تاریخ را نیز می‌پذیرد. آن‌ها عمداً در اینجا با جزئیات مستند نشده‌اند، و ممکن است نسخه‌های بعدی \fBcvs\fR همه آن‌ها را نپذیرند. .SP یکی از این قالب‌ها \fB\fImonth\fB/\fIday\fB/\fIyear\fB\fR است. این ممکن است افرادی را که عادت به ترتیب متفاوتی از ماه و روز دارند سردرگم کند؛ \fB1/4/96\fR برابر با ۴ ژانویه است، نه اول آوریل. .SP به یاد داشته باشید که آرگومان گزینه \fB-D\fR را درون علامت نقل‌قول قرار دهید تا پوسته شما فاصله‌ها را به عنوان جداکننده آرگومان‌ها تفسیر نکند. دستوری با استفاده از فلگ \fB-D\fR می‌تواند شبیه این باشد: .SP .PD 0 .SP .IP "" 4 $ cvs diff -D "1 hour ago" cvs.texinfo .PD .IP "" 2 .SP .IX "Forcing a tag match" .IP "" 0 \fB-f\fR .IP "" 2 هنگامی که یک تاریخ یا برچسب مشخص را برای دستورهای \fBcvs\fR تعیین می‌کنید، آن‌ها معمولاً فایل‌هایی را که شامل آن برچسب نیستند (یا پیش از آن تاریخ وجود نداشته‌اند) نادیده می‌گیرند. اگر می‌خواهید فایل‌ها حتی بدون تطابق برچسب یا تاریخ بازیابی شوند، از گزینه \fB-f\fR استفاده کنید. (از تازه‌ترین ویرایش فایل استفاده خواهد شد). .SP توجه داشته باشید که حتی با \fB-f\fR، برچسبی که مشخص می‌کنید باید وجود داشته باشد (یعنی در برخی فایل‌ها، نه لزوماً در تمام فایل‌ها). این کار باعث می‌شود اگر نام برچسب را اشتباه تایپ کنید، \fBcvs\fR همچنان خطا دهد. .SP گزینه \fB-f\fR با این دستورها در دسترس است: \fBannotate\fR، \fBcheckout\fR، \fBexport\fR، \fBrdiff\fR، \fBrtag\fR، و \fBupdate\fR. .SP \fBهشدار: دستورهای \fBcommit\fB و \fBremove\fB نیز دارای گزینه \fB-f\fB هستند، اما رفتار آن برای این دستورها متفاوت است. به `commit options\(aq در راهنمای CVS و `Removing files\(aq در راهنمای CVS مراجعه کنید.\fR .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش پیش‌فرض کلمات کلیدی را تغییر می‌دهد. برای معنای \fIkflag\fR به `Keyword substitution\(aq در کتابچه راهنمای CVS مراجعه کنید. مشخصه \fIkflag\fR شما هنگامی که از آن برای ساختن یک نسخه خصوصی از پرونده مبدأ استفاده می‌کنید، \fIsticky\fR (ماندگار) است؛ به این معنی که وقتی از این گزینه همراه با دستورهای \fBcheckout\fR یا \fBupdate\fR استفاده می‌کنید، \fBcvs\fR مقدار \fIkflag\fR انتخابی شما را به پرونده مرتبط می‌سازد، و در دستورهای update آینده روی همان پرونده نیز به استفاده از آن ادامه می‌دهد تا زمانی که خلاف آن را مشخص کنید. .SP گزینه \fB-k\fR با دستورهای \fBadd\fR، \fBcheckout\fR، \fBdiff\fR، \fBrdiff\fR، \fBimport\fR و \fBupdate\fR در دسترس است. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ فقط در دایرکتوری کاری فعلی اجرا می‌شود، به جای پیمایش بازگشتی در زیردایرکتوری‌ها. .SP در دسترس با دستورهای زیر: \fBannotate\fR، \fBcheckout\fR، \fBcommit\fR، \fBdiff\fR، \fBedit\fR، \fBeditors\fR، \fBexport\fR، \fBlog\fR، \fBrdiff\fR، \fBremove\fR، \fBrtag\fR، \fBstatus\fR، \fBtag\fR، \fBunedit\fR، \fBupdate\fR، \fBwatch\fR و \fBwatchers\fR. .SP .IX "Editor, avoiding invocation of" .IX "Avoiding editor invocation" .IP "" 0 \fB-m \fImessage\fB\fR .IP "" 2 استفاده از \fImessage\fR به عنوان اطلاعات گزارش (log)، به جای فراخوانی یک ویرایشگر. .SP در دسترس با دستورهای زیر: \fBadd\fR، \fBcommit\fR و \fBimport\fR. .SP .IP "" 0 \fB-n\fR .IP "" 2 هیچ برنامه برچسب‌گذاری (tag program) اجرا نشود. (می‌توان برنامه‌ای را برای اجرا در پایگاه داده ماژول‌ها مشخص کرد (گره `modules\(aq در کتابچه راهنمای CVS را ببینید)؛ این گزینه آن را دور می‌زند). .SP \fBاین گزینه با گزینه برنامه‌ای \fBcvs -n\fB که می‌توانید در سمت چپ دستور cvs مشخص کنید یکسان نیست!\fR .SP در دسترس با دستورهای \fBcheckout\fR، \fBexport\fR و \fBrtag\fR. .SP .IP "" 0 \fB-P\fR .IP "" 2 دایرکتوری‌های خالی هرس شوند. `Removing directories\(aq در کتابچه راهنمای CVS را ببینید. .SP .IP "" 0 \fB-p\fR .IP "" 2 پرونده‌های دریافت‌شده از مخزن را به جای نوشتن در دایرکتوری فعلی، به خروجی استاندارد لوله‌کشی (pipe) می‌کند. در دسترس با دستورهای \fBcheckout\fR و \fBupdate\fR. .SP .IP "" 0 \fB-R\fR .IP "" 2 پردازش بازگشتی دایرکتوری‌ها. این ویژگی به طور پیش‌فرض فعال است. .SP در دسترس با دستورهای زیر: \fBannotate\fR، \fBcheckout\fR، \fBcommit\fR، \fBdiff\fR، \fBedit\fR، \fBeditors\fR، \fBexport\fR، \fBrdiff\fR، \fBremove\fR، \fBrtag\fR، \fBstatus\fR، \fBtag\fR، \fBunedit\fR، \fBupdate\fR، \fBwatch\fR و \fBwatchers\fR. .SP .IP "" 0 \fB-r \fItag\fB\fR .IP "" 2 .IX "HEAD, special tag" .IX "BASE, special tag" استفاده از بازنگری مشخص‌شده توسط آرگومان \fItag\fR به جای بازنگری پیش‌فرض \fIhead\fR. علاوه بر برچسب‌های دلخواه تعریف‌شده توسط دستور \fBtag\fR یا \fBrtag\fR، دو برچسب ویژه همیشه در دسترس هستند: \fBHEAD\fR به تازه‌ترین نسخه موجود در مخزن اشاره دارد، و \fBBASE\fR به بازنگری‌ای که آخرین بار در دایرکتوری کاری فعلی واکشی کرده‌اید اشاره می‌کند. .SP هنگامی که از این گزینه به همراه \fBcheckout\fR یا \fBupdate\fR برای ساختن نسخه اختصاصی خود از یک پرونده استفاده می‌کنید، مشخصه برچسب sticky (ماندگار) خواهد بود: \fBcvs\fR برچسب را به خاطر می‌سپارد و در دستورهای update آینده نیز به استفاده از آن ادامه می‌دهد، تا زمانی که خلاف آن را مشخص کنید (برای اطلاعات بیشتر در مورد برچسب‌ها/تاریخ‌های ماندگار، گره `Sticky tags\(aq در کتابچه راهنمای CVS را ببینید). .SP برچسب می‌تواند یک برچسب نمادین یا عددی باشد، همان‌طور که در `Tags\(aq در کتابچه راهنمای CVS شرح داده شده است، یا نام یک شاخه (branch)، همان‌طور که در `Branching and merging\(aq در کتابچه راهنمای CVS آمده است. هنگامی که یک دستور انتظار یک بازنگری خاص را دارد، نام یک شاخه به عنوان تازه‌ترین بازنگری در آن شاخه تفسیر می‌شود. .SP مشخص کردن گزینه سراسری \fB-q\fR همراه با گزینه دستوری \fB-r\fR اغلب مفید است، برای فرونشاندن پیام‌های هشدار در زمانی که پرونده \fBrcs\fR حاوی برچسب مشخص‌شده نباشد. .SP \fBاین با گزینه کلی \fBcvs -r\fB که می‌توانید در سمت چپ دستور \fBcvs\fB مشخص کنید یکسان نیست!\fR .SP \fB-r\fR با دستورهای \fBannotate\fR، \fBcheckout\fR، \fBcommit\fR، \fBdiff\fR، \fBhistory\fR، \fBexport\fR، \fBrdiff\fR، \fBrtag\fR و \fBupdate\fR در دسترس است. .SP .IP "" 0 \fB-W\fR .IP "" 2 نام پرونده‌هایی را که باید پالایش (فیلتر) شوند مشخص می‌کند. می‌توانید از این گزینه مکرراً استفاده کنید. این مشخصه می‌تواند یک الگوی نام پرونده از همان نوعی باشد که می‌توانید در پرونده \fB.cvswrappers\fR مشخص کنید. در دسترس با دستورهای زیر: \fBimport\fR و \fBupdate\fR. .SP .SP .SH "افزودن (add)" .SS "افزودن پرونده‌ها و دایرکتوری‌ها به مخزن (Add files and directories to the repository)" .IX "add (subcommand)" .SP .IP "\(bu" 2 خلاصه (Synopsis): add [-k rcs-kflag] [-m message] files... .IP "\(bu" 2 نیازمندی‌ها (Requires): مخزن (repository)، دایرکتوری کاری (working directory). .IP "\(bu" 2 تغییرات (Changes): مخزن (repository)، دایرکتوری کاری (working directory). .SP دستور \fBadd\fR برای معرفی پرونده‌ها و دایرکتوری‌های جدید جهت افزودن به مخزن \fBcvs\fR به کار می‌رود. هنگامی که \fBadd\fR بر روی یک دایرکتوری استفاده شود، یک دایرکتوری جدید بلافاصله در مخزن ایجاد می‌گردد. هنگامی که بر روی یک پرونده به کار رود، تنها دایرکتوری کاری به‌روزرسانی می‌شود. تغییرات در مخزن تا زمانی که دستور \fBcommit\fR بر روی پرونده تازه افزوده شده اجرا نشود، اعمال نمی‌گردند. .SP دستور \fBadd\fR همچنین پرونده‌هایی را که قبلاً حذف شده‌اند احیا می‌کند. این کار می‌تواند قبل یا بعد از استفاده از دستور \fBcommit\fR برای نهایی‌سازی حذف پرونده‌ها انجام شود. پرونده‌های احیاشده در همان زمان اجرای دستور \fBadd\fR در دایرکتوری کاری بازیابی می‌شوند. .SP .SH "گزینه‌های add (add options)" .SP این گزینه‌های استاندارد توسط \fBadd\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها، گره `Common options\(aq را در راهنمای CVS ببینید): .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش کلیدواژه‌ها مطابق با \fIkflag\fR. گره `Keyword substitution\(aq را در راهنمای CVS ببینید. این گزینه چسبنده (sticky) است؛ به‌روزرسانی‌های آتیِ این پرونده در این دایرکتوری کاری از همین \fIkflag\fR استفاده خواهند کرد. دستور \fBstatus\fR می‌تواند برای مشاهده گزینه‌های چسبنده بررسی شود. برای اطلاعات بیشتر درباره دستور \fBstatus\fR، گره `Invoking CVS\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-m \fImessage\fB\fR .IP "" 2 استفاده از \fImessage\fR به عنوان پیام گزارش، به جای فراخوانی یک ویرایشگر. .SP .SH "مثال‌های add (add examples)" .SP .SS "افزودن یک دایرکتوری (Adding a directory)" .SP .PD 0 .SP .IP "" 2 $ mkdir doc .IP "" 2 $ cvs add doc .IP "" 2 Directory /path/to/repository/doc added to the repository .PD .IP "" 0 .SP .SS "افزودن یک پرونده (Adding a file)" .SP .PD 0 .SP .SP .IP "" 2 $ >TODO .IP "" 2 $ cvs add TODO .IP "" 2 cvs add: scheduling file \`TODO\(aq for addition .IP "" 2 cvs add: use \(aqcvs commit\(aq to add this file permanently .PD .IP "" 0 .SP .SS "خنثی‌سازی دستور \fBremove\fR (Undoing a \fBremove\fR command)" .SP .PD 0 .SP .IP "" 2 $ rm -f makefile .IP "" 2 $ cvs remove makefile .IP "" 2 cvs remove: scheduling \`makefile\(aq for removal .IP "" 2 cvs remove: use \(aqcvs commit\(aq to remove this file permanently .IP "" 2 $ cvs add makefile .IP "" 2 U makefile .IP "" 2 cvs add: makefile, version 1.2, resurrected .PD .IP "" 0 .SP .SH "مدیریت (admin)" .SS "مدیریت سیستم (Administration)" .IX "Admin (subcommand)" .SP .IP "\(bu" 2 نیازمندی‌ها (Requires): مخزن (repository)، دایرکتوری کاری (working directory). .IP "\(bu" 2 تغییرات (Changes): مخزن (repository). .IP "\(bu" 2 مترادف (Synonym): rcs .SP این رابط \fBcvs\fR با امکانات مدیریتی گوناگون است. برخی از آن‌ها کاربرد چندانی برای \fBcvs\fR ندارند اما برای اهداف تاریخی حفظ شده‌اند. برخی از این گزینه‌های تردیدبرانگیز احتمالاً در آینده حذف خواهند شد. این دستور به صورت بازگشتی عمل \fIمی‌کند\fR، بنابراین باید نهایت دقت را به کار برد. .SP .IX "cvsadmin" در یونیکس، اگر گروهی به نام \fBcvsadmin\fR وجود داشته باشد، تنها اعضای آن گروه می‌توانند \fBcvs admin\fR را اجرا کنند (به استثنای دستور \fBcvs admin -k\fR که برای هر کاربری قابل اجرا است). این گروه باید روی سرور، یا هر سامانه‌ای که نسخه غیر کلاینت/سرورِ \fBcvs\fR را اجرا می‌کند وجود داشته باشد. برای غیرمجاز کردن \fBcvs admin\fR برای تمامی کاربران، گروهی بسازید که هیچ کاربری در آن نباشد. در NT، ویژگی \fBcvsadmin\fR وجود ندارد و همه کاربران می‌توانند \fBcvs admin\fR را اجرا نمایند. .SP .SH "admin options - گزینه‌های admin" .SP برخی از این گزینه‌ها کاربرد چندانی برای \fBcvs\fR ندارند اما به دلایل تاریخی وجود دارند. حتی برخی از آن‌ها تا زمانی که اثرشان را لغو نکنید، استفاده از \fBcvs\fR را غیرممکن می‌سازند! .SP .IP "" 0 \fB-A\fIoldfile\fB\fR .IP "" 2 ممکن است به همراه \fBcvs\fR کار نکند. فهرست دسترسی \fIoldfile\fR را به فهرست دسترسی پرونده \fBrcs\fR الحاق می‌کند. .SP .IP "" 0 \fB-a\fIlogins\fB\fR .IP "" 2 ممکن است به همراه \fBcvs\fR کار نکند. نام‌های ورودِ موجود در فهرست جداشده با کامای \fIlogins\fR را به فهرست دسترسی پرونده \fBrcs\fR الحاق می‌کند. .SP .IP "" 0 \fB-b[\fIrev\fB]\fR .IP "" 2 شاخه پیش‌فرض را روی \fIrev\fR تنظیم می‌کند. در \fBcvs\fR، به طور معمول شاخه‌های پیش‌فرض را دستکاری نمی‌کنید؛ برچسب‌های چسبان (گره `Sticky tags\(aq در راهنمای CVS را ببینید) روش بهتری برای تصمیم‌گیری درباره این هستند که می‌خواهید روی کدام شاخه کار کنید. تنها یک دلیل برای اجرای \fBcvs admin -b\fR وجود دارد: بازگشت به نسخه توزیع‌کننده هنگام استفاده از شاخه‌های فروشنده (گره `Reverting local changes\(aq در راهنمای CVS را ببینید). نباید هیچ فاصله‌ای میان \fB-b\fR و آرگومان آن باشد. .SP .IX "Comment leader" .IP "" 0 \fB-c\fIstring\fB\fR .IP "" 2 پیشوند توضیح (comment leader) را روی \fIstring\fR تنظیم می‌کند. پیشوند توضیح توسط نسخه‌های کنونی \fBcvs\fR یا \fBrcs\fR 5.7 استفاده نمی‌شود. بنابراین، تقریباً با اطمینان می‌توانید نگران آن نباشید. گره `Keyword substitution\(aq در راهنمای CVS را ببینید. .SP .IP "" 0 \fB-e[\fIlogins\fB]\fR .IP "" 2 ممکن است به همراه \fBcvs\fR کار نکند. نام‌های ورودِ موجود در فهرست جداشده با کامای \fIlogins\fR را از فهرست دسترسی پرونده RCS پاک می‌کند. اگر \fIlogins\fR حذف شود، کل فهرست دسترسی پاک می‌شود. نباید هیچ فاصله‌ای میان \fB-e\fR و آرگومان آن باشد. .SP .IP "" 0 \fB-I\fR .IP "" 2 اجرا به صورت تعاملی، حتی اگر ورودی استاندارد یک پایانه نباشد. این گزینه با سازوکار کلاینت/سرور \fBcvs\fR کار نمی‌کند و احتمالاً در نگارش‌های آینده \fBcvs\fR حذف خواهد شد. .SP .IP "" 0 \fB-i\fR .IP "" 2 در \fBcvs\fR بلااستفاده است. این گزینه پرونده \fBrcs\fR جدیدی را بدون ثبت بازنگری، ایجاد و مقداردهی اولیه می‌کند. با \fBcvs\fR، پرونده‌ها را با دستور \fBcvs add\fR اضافه کنید (گره `Adding files\(aq در راهنمای CVS را ببینید). .SP .IP "" 0 \fB-k\fIsubst\fB\fR .IP "" 2 جایگزینی پیش‌فرض کلیدواژه را روی \fIsubst\fR تنظیم می‌کند. گره `Keyword substitution\(aq در راهنمای CVS را ببینید. ارائه صریح گزینه \fB-k\fR به \fBcvs update\fR، \fBcvs export\fR، یا \fBcvs checkout\fR این پیش‌فرض را بازنویسی می‌کند. .SP .IP "" 0 \fB-l[\fIrev\fB]\fR .IP "" 2 بازنگری دارای شماره \fIrev\fR را قفل می‌کند. اگر یک شاخه داده شود، آخرین بازنگری روی آن شاخه را قفل می‌کند. اگر \fIrev\fR حذف شود، آخرین بازنگری در شاخه پیش‌فرض را قفل می‌کند. نباید هیچ فاصله‌ای میان \fB-l\fR و آرگومان آن باشد. .SP این گزینه می‌تواند همراه با اسکریپت \fBrcslock.pl\fR در دایرکتوری \fBcontrib\fR از توزیع سورس‌کد \fBcvs\fR برای فراهم کردن دریافت‌های اختصاصی (جایی که فقط یک کاربر در هر لحظه می‌تواند پرونده خاصی را ویرایش کند) استفاده شود. برای جزئیات به توضیحات درون آن پرونده مراجعه کنید (و پرونده \fBREADME\fR در آن شاخه را برای سلب مسئولیت درباره ماهیت پشتیبانی‌نشده contrib ببینید). طبق توضیحات موجود در آن پرونده، قفل‌گذاری باید روی سخت‌گیرانه (که پیش‌فرض است) تنظیم شود. .SP .IP "" 0 \fB-L\fR .IP "" 2 قفل‌گذاری را روی سخت‌گیرانه تنظیم می‌کند. قفل‌گذاری سخت‌گیرانه بدین معناست که مالک پرونده RCS از قفل‌گذاری برای ارسال (checkin) معاف نیست. برای استفاده با \fBcvs\fR، قفل‌گذاری سخت‌گیرانه باید تنظیم شود؛ به بحث ذیل گزینه \fB-l\fR در بالا مراجعه کنید. .SP .IX "Changing a log message" .IX "Replacing a log message" .IX "Correcting a log message" .IX "Fixing a log message" .IX "Log message, correcting" .IP "" 0 \fB-m\fIrev\fB:\fImsg\fB\fR .IP "" 2 پیام گزارش بازنگری \fIrev\fR را با \fImsg\fR جایگزین می‌کند. .SP .IP "" 0 \fB-N\fIname\fB[:[\fIrev\fB]]\fR .IP "" 2 مانند \fB-n\fR عمل می‌کند، به جز اینکه هرگونه انتساب قبلی \fIname\fR را بازنویسی می‌کند. برای استفاده با شاخه‌های جادویی، گره `Magic branch numbers\(aq در راهنمای CVS را ببینید. .SP .IP "" 0 \fB-n\fIname\fB[:[\fIrev\fB]]\fR .IP "" 2 نام نمادین \fIname\fR را به شاخه یا بازنگری \fIrev\fR منتسب می‌کند. معمولاً بهتر است به جای آن از \fBcvs tag\fR یا \fBcvs rtag\fR استفاده شود. در صورتی که هر دو \fB:\fR و \fIrev\fR حذف شوند، نام نمادین را حذف می‌کند؛ در غیر این صورت، اگر \fIname\fR از قبل به شماره دیگری منتسب شده باشد، یک پیام خطا چاپ می‌کند. اگر \fIrev\fR نمادین باشد، پیش از انتساب بسط می‌یابد. یک \fIrev\fR متشکل از یک شماره شاخه که به دنبال آن یک \fB.\fR آمده است، نمایانگر آخرین بازنگری کنونی در آن شاخه است. علامت \fB:\fR همراه با یک \fIrev\fR خالی، نشان‌دهنده آخرین بازنگری کنونی در شاخه پیش‌فرض، معمولاً تنه اصلی (trunk) است. برای نمونه، \fBcvs admin -n\fIname\fB:\fR نام \fIname\fR را به آخرین بازنگری کنونی تمام پرونده‌های RCS منتسب می‌کند؛ این در تضاد با \fBcvs admin -n\fIname\fB:$\fR است که \fIname\fR را به شماره‌های بازنگری استخراج‌شده از رشته‌های کلیدواژه در پرونده‌های کاری متناظر پیوند می‌دهد. .SP .IX "Deleting revisions" .IX "Outdating revisions" .IX "Saving space" .IP "" 0 \fB-o\fIrange\fB\fR .IP "" 2 بازنگری‌های مشخص‌شده توسط \fIrange\fR را حذف (\fIمنسوخ\fR) می‌کند. .SP توجه داشته باشید که این دستور می‌تواند کاملاً خطرناک باشد مگر اینکه \fIدقیقاً\fR بدانید در حال انجام چه کاری هستید (برای نمونه هشدارهای زیر را درباره گیج‌کننده بودن نحو \fIrev1\fR:\fIrev2\fR ببینید). .SP اگر با کمبود دیسک مواجه هستید، این گزینه ممکن است به شما کمک کند. اما پیش از استفاده دو بار فکر کنید\(emهیچ راهی به جز بازگردانی آخرین نسخه پشتیبان برای خنثی کردن اثر این دستور وجود ندارد! اگر بازنگری‌هایی متفاوت از آنچه مد نظرتان بود را حذف کنید، خواه به دلیل بی‌دقتی یا (خدا نکرده) باگ \fBcvs\fR باشد، هیچ فرصتی برای تصحیح خطا پیش از حذف شدن بازنگری‌ها نخواهد بود. احتمالاً فکر خوبی است که ابتدا روی یک نسخه رونوشت از مخزن آزمایش کنید. .SP مقدار \fIrange\fR را به یکی از روش‌های زیر مشخص کنید: .SP .IP "" 2 \fB\fIrev1\fB::\fIrev2\fB\fR .IP "" 4 فشرده‌سازی تمام بازنگری‌های میان rev1 و rev2، به طوری که \fBcvs\fR تنها تفاوت‌های مرتبط با گذار از rev1 به rev2 را ذخیره کند، نه مراحل میانی را. برای نمونه، پس از \fB-o 1.3::1.5\fR می‌توان بازنگری 1.3، بازنگری 1.5، یا تفاوت‌های رسیدن از 1.3 به 1.5 را بازیابی کرد، اما نه بازنگری 1.4 یا تفاوت‌های میان 1.3 و 1.4 را. نمونه‌های دیگر: \fB-o 1.3::1.4\fR و \fB-o 1.3::1.3\fR هیچ اثری ندارند، زیرا هیچ بازنگری میانی برای حذف وجود ندارد. .SP .IP "" 2 \fB::\fIrev\fB\fR .IP "" 4 فشرده‌سازی بازنگری‌های میان ابتدای شاخه حاوی \fIrev\fR و خود \fIrev\fR. نقطه انشعاب و \fIrev\fR دست‌نخورده باقی می‌مانند. برای نمونه، \fB-o ::1.3.2.6\fR بازنگری 1.3.2.1، بازنگری 1.3.2.5 و هر آنچه در میان است را حذف می‌کند، اما 1.3 و 1.3.2.6 را دست‌نخورده می‌گذارد. .SP .IP "" 2 \fB\fIrev\fB::\fR .IP "" 4 فشرده‌سازی بازنگری‌های میان \fIrev\fR و انتهای شاخه حاوی \fIrev\fR. بازنگری \fIrev\fR دست‌نخورده باقی می‌ماند اما بازنگری راس (head) حذف می‌شود. .SP .IP "" 2 \fB\fIrev\fB\fR .IP "" 4 حذف نگارش \fIrev\fR. برای نمونه، \fB-o 1.3\fR معادل \fB-o 1.2::1.4\fR است. .SP .IP "" 2 \fB\fIrev1\fB:\fIrev2\fB\fR .IP "" 4 حذف نگارش‌ها از \fIrev1\fR تا \fIrev2\fR، شامل هر دو، روی شاخه‌ای یکسان. دیگر امکان بازیابی \fIrev1\fR یا \fIrev2\fR یا هر یک از نگارش‌های بین آن‌ها وجود نخواهد داشت. برای نمونه، دستور \fBcvs admin -oR_1_01:R_1_02 \&.\fR به‌ندرت سودمند است. این دستور به معنای حذف نگارش‌ها تا برچسب R_1_02 و شامل خود آن است. اما هشدار! اگر پرونده‌هایی باشند که میان R_1_02 و R_1_03 دگرگون نشده باشند، آن پرونده \fIهمان\fR شماره عددی نگارش تخصیص‌یافته به برچسب‌های R_1_02 و R_1_03 را خواهد داشت. بنابراین نه تنها بازیابی R_1_02 ناممکن خواهد شد؛ بلکه R_1_03 را نیز باید از نوارها (نسخه‌های پشتیبان) بازیابی کرد! در بیشتر موارد می‌خواهید به جای آن \fIrev1\fR::\fIrev2\fR را مشخص کنید. .SP .IP "" 2 \fB:\fIrev\fB\fR .IP "" 4 حذف نگارش‌ها از آغاز شاخه حاوی \fIrev\fR تا \fIrev\fR و شامل خود آن. .SP .IP "" 2 \fB\fIrev\fB:\fR .IP "" 4 حذف نگارش‌ها از نگارش \fIrev\fR، شامل خود \fIrev\fR، تا پایان شاخه حاوی \fIrev\fR. .SP هیچ‌یک از نگارش‌های مشخص‌شده برای حذف نباید شاخه یا قفلی داشته باشند. .SP اگر هر یک از نگارش‌های موردنظر برای حذف دارای نام نمادین باشند، و یکی از نحوهای \fB::\fR مشخص شود، آن‌گاه \fBcvs\fR خطا داده و هیچ نگارشی را حذف نخواهد کرد. اگر واقعاً می‌خواهید هم نام‌های نمادین و هم نگارش‌ها را حذف کنید، نخست نام‌های نمادین را با \fBcvs tag -d\fR حذف نمایید، سپس \fBcvs admin -o\fR را اجرا کنید. اگر نحوهای فاقد \fB::\fR مشخص شوند، \fBcvs\fR نگارش‌ها را حذف می‌کند ولی نام‌های نمادین را در حالتی که به نگارش‌های ناموجود اشاره دارند باقی می‌گذارد. این رفتار برای سازگاری با نگارش‌های پیشین \fBcvs\fR حفظ شده است، اما چون چندان سودمند نیست، ممکن است در آینده همانند حالت \fB::\fR رفتار کند. .SP به‌دلیل نحوه مدیریت شاخه‌ها توسط \fBcvs\fR، اگر \fIrev\fR یک شاخه باشد نمی‌تواند به‌صورت نمادین مشخص شود. برای توضیح بیشتر، به `Magic branch numbers\(aq در راهنمای CVS مراجعه کنید. .SP اطمینان یابید که هیچ‌کس رونوشتی از نگارشی که منسوخ (outdate) می‌کنید برداشت (check out) نکرده باشد. اگر کسی آغاز به ویرایش آن کند و بکوشد دوباره آن را تحویل دهد (check in)، رویدادهای عجیبی رخ خواهد داد. به همین دلیل، این گزینه شیوه مناسبی برای برگرداندن یک ثبت (commit) نادرست نیست؛ در عوض نگارش جدیدی ثبت کنید که تغییر نادرست را باطل کند (گره `Merging two revisions\(aq را در راهنمای CVS ببینید). .SP .IP "" 0 \fB-q\fR .IP "" 2 اجرای بی‌صدا؛ پیام‌های تشخیصی چاپ نشوند. .SP .IP "" 0 \fB-s\fIstate\fB[:\fIrev\fB]\fR .IP "" 2 مفید در \fBcvs\fR. صفت وضعیت (state) نگارش \fIrev\fR را روی \fIstate\fR تنظیم می‌کند. اگر \fIrev\fR شماره یک شاخه باشد، تازه‌ترین نگارش روی آن شاخه در نظر گرفته می‌شود. اگر \fIrev\fR حذف شود، تازه‌ترین نگارش روی شاخه پیش‌فرض در نظر گرفته می‌شود. هر شناسه‌ای برای \fIstate\fR پذیرفته است. مجموعه‌ای سودمند از وضعیت‌ها شامل \fBExp\fR (برای آزمایشی)، \fBStab\fR (برای پایدار) و \fBRel\fR (برای منتشرشده) است. به‌طور پیش‌فرض، وضعیت یک نگارش جدید هنگامی که ایجاد می‌شود روی \fBExp\fR تنظیم می‌گردد. این وضعیت در خروجی \fIcvs log\fR (گره `log\(aq در راهنمای CVS را ببینید) و در کلیدواژه‌های \fB$\fP\fPLog$\fR و \fB$\fP\fPState$\fR (گره `Keyword substitution\(aq در راهنمای CVS را ببینید) نمایان است. توجه داشته باشید که \fBcvs\fR وضعیت \fBdead\fR را برای مقاصد ویژه خود به کار می‌برد (گره `Attic\(aq در راهنمای CVS را ببینید)؛ برای بردن یک پرونده به وضعیت \fBdead\fR یا خارج کردن آن از این وضعیت، از دستورهایی مانند \fBcvs remove\fR و \fBcvs add\fR استفاده کنید (گره `Adding and removing\(aq در راهنمای CVS را ببینید)، نه \fBcvs admin -s\fR. .SP .IP "" 0 \fB-t[\fIfile\fB]\fR .IP "" 2 مفید در \fBcvs\fR. نوشتن متن توضیحی از محتویات پرونده نام‌برده \fIfile\fR در پرونده RCS، و حذف متن پیشین. مسیر پرونده \fIfile\fR نباید با \fB-\fR آغاز شود. متن توضیحی در خروجی \fBcvs log\fR قابل مشاهده است (گره `log\(aq در راهنمای CVS را ببینید). نباید هیچ فاصله‌ای میان \fB-t\fR و آرگومان آن باشد. .SP اگر \fIfile\fR ذکر نشود، متن از ورودی استاندارد گرفته می‌شود که با پایان پرونده (EOF) یا سطری که تنها شامل \fB.\fR است پایان می‌یابد. در صورت امکان تعامل، برای دریافت متن اعلان نشان داده می‌شود؛ \fB-I\fR را ببینید. .SP .IP "" 0 \fB-t-\fIstring\fB\fR .IP "" 2 مشابه \fB-t\fIfile\fB\fR. متن توضیحی را از \fIstring\fR در پرونده \fBrcs\fR می‌نویسد و متن موجود را حذف می‌کند. نباید هیچ فاصله‌ای میان \fB-t\fR و آرگومان آن باشد. .SP .IP "" 0 \fB-U\fR .IP "" 2 تنظیم قفل‌گذاری روی حالت غیرسخت‌گیرانه (non-strict). قفل‌گذاری غیرسخت‌گیرانه بدین معناست که مالک پرونده نیازی به قفل کردن نگارش برای تحویل (checkin) ندارد. برای استفاده همراه \fBcvs\fR، قفل‌گذاری سخت‌گیرانه باید تنظیم باشد؛ بحث زیر گزینه \fB-l\fR در بالا را ببینید. .SP .IP "" 0 \fB-u[\fIrev\fB]\fR .IP "" 2 برای بحث درباره کاربرد این گزینه با \fBcvs\fR، گزینه \fB-l\fR در بالا را ببینید. باز کردن قفل نگارش با شماره \fIrev\fR. اگر یک شاخه مشخص شود، قفل تازه‌ترین نگارش روی آن شاخه باز می‌شود. اگر \fIrev\fR حذف شود، تازه‌ترین قفل نگه‌داشته‌شده توسط فراخواننده برداشته می‌شود. معمولاً تنها قفل‌کننده یک نگارش می‌تواند قفل آن را باز کند؛ اگر فرد دیگری قفل نگارشی را باز کند، قفل شکسته می‌شود. این رویداد سبب ارسال اعلان \fBcommit\fR به قفل‌کننده نخستین می‌شود (گره `Getting Notified\(aq در راهنمای CVS را ببینید). نباید هیچ فاصله‌ای میان \fB-u\fR و آرگومان آن باشد. .SP .IP "" 0 \fB-V\fIn\fB\fR .IP "" 2 در نگارش‌های پیشین \fBcvs\fR، این گزینه به معنای نوشتن پرونده‌ای از نوع \fBrcs\fR بود که برای نگارش \fIn\fR از \fBrcs\fR قابل پذیرش باشد، اما اکنون منسوخ شده و مشخص کردن آن سبب بروز خطا می‌شود. .SP .IP "" 0 \fB-x\fIsuffixes\fB\fR .IP "" 2 در نگارش‌های پیشین \fBcvs\fR، این گزینه به‌منزله روشی برای مشخص کردن پسوند نام‌های پرونده‌های \fBrcs\fR مستند شده بود. با این حال، \fBcvs\fR همواره الزامی کرده بود که پرونده‌های \fBrcs\fR به‌کاررفته توسط \fBcvs\fR به \fB,v\fR ختم شوند، بنابراین این گزینه هرگز کاربرد مفیدی نداشته است. .SP .SP .SH "annotate - حاشیه‌نویسی (annotate)" .SS "What revision modified each line of a file? - کدام بازبینی هر خط پرونده را ویرایش کرده است؟" .IX "annotate (subcommand)" .SP .IP "\(bu" 2 خلاصه: annotate [options] files\&... .IP "\(bu" 2 پیش‌نیاز: مخزن (repository). .IP "\(bu" 2 مترادف: blame .IP "\(bu" 2 تغییرات: هیچ‌چیز. .SP برای هر پرونده در \fIfiles\fR، آخرین بازبینی (head revision) شاخه اصلی (trunk) را به همراه اطلاعات آخرین تغییر ایجادشده برای هر خط چاپ می‌کند. .SP .SH "annotate options - گزینه‌های annotate" .SP این گزینه‌های استاندارد توسط \fBannotate\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-l\fR .IP "" 2 تنها دایرکتوری محلی، بدون پیمایش بازگشتی. .SP .IP "" 0 \fB-R\fR .IP "" 2 پردازش دایرکتوری‌ها به‌صورت بازگشتی. .SP .IP "" 0 \fB-f\fR .IP "" 2 استفاده از آخرین بازبینی (head revision) در صورت نیافتن برچسب/تاریخ. .SP .IP "" 0 \fB-F\fR .IP "" 2 حاشیه‌نویسی پرونده‌های باینری (دودویی). .SP .IP "" 0 \fB-r \fIrevision\fB\fR .IP "" 2 حاشیه‌نویسی پرونده بر اساس بازبینی/برچسب مشخص‌شده. .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 حاشیه‌نویسی پرونده بر اساس تاریخ مشخص‌شده. .SP .SH "annotate example - مثال annotate" .SP برای مثال: .SP .PD 0 .SP .IP "" 2 $ cvs annotate ssfile .IP "" 2 Annotations for ssfile .IP "" 2 *************** .IP "" 2 1.1 (mary 27-Mar-96): ssfile line 1 .IP "" 2 1.2 (joe 28-Mar-96): ssfile line 2 .PD .IP "" 0 .SP پرونده \fBssfile\fR در حال حاضر شامل دو خط است. خط \fBssfile line 1\fR در ۲۷ مارس توسط \fBmary\fR ثبت (check in) شد. سپس در ۲۸ مارس، \fBjoe\fR خط \fBssfile line 2\fR را اضافه کرد، بدون آنکه خط \fBssfile line 1\fR تغییر کند. این گزارش چیزی درباره خطوطی که حذف یا جایگزین شده‌اند به شما نمی‌گوید؛ برای این کار باید از \fBcvs diff\fR استفاده کنید (به گره `diff\(aq در راهنمای CVS مراجعه کنید). .SP گزینه‌های مربوط به \fBcvs annotate\fR در گره `Invoking CVS\(aq در راهنمای CVS فهرست شده‌اند و می‌توان برای انتخاب پرونده‌ها و بازبینی‌ها جهت حاشیه‌نویسی از آن‌ها استفاده کرد. این گزینه‌ها با جزئیات بیشتر در آنجا و در گره `Common options\(aq در راهنمای CVS شرح داده شده‌اند. .SP .SH "checkout - دریافت نسخه (checkout)" .SS "Check out sources for editing - دریافت کدهای منبع برای ویرایش" .IX "checkout (subcommand)" .IX "co (subcommand)" .SP .IP "\(bu" 2 خلاصه: checkout [options] modules\&... .IP "\(bu" 2 پیش‌نیاز: مخزن (repository). .IP "\(bu" 2 تغییرات: دایرکتوری کاری (working directory). .IP "\(bu" 2 مترادف‌ها: co, get .SP ایجاد یا به‌روزرسانی یک دایرکتوری کاری حاوی رونوشت‌هایی از پرونده‌های منبع مشخص‌شده با \fImodules\fR. شما باید پیش از استفاده از بیشتر دستورهای دیگر \fBcvs\fR دستور \fBcheckout\fR را اجرا کنید، زیرا بیشتر آن‌ها بر روی دایرکتوری کاری شما عمل می‌کنند. .SP مؤلفه‌های \fImodules\fR یا نام‌های نمادین برای مجموعه‌ای از دایرکتوری‌ها و پرونده‌های منبع هستند، یا مسیرهایی به دایرکتوری‌ها یا پرونده‌ها در مخزن. نام‌های نمادین در پرونده \fBmodules\fR تعریف شده‌اند. گره `modules\(aq را در راهنمای CVS ببینید. .SP بسته به پودمان‌های مشخص‌شده، \fBcheckout\fR ممکن است به‌صورت بازگشتی دایرکتوری‌ها را ایجاد کند و آن‌ها را با پرونده‌های منبع مناسب پر نماید. سپس می‌توانید این پرونده‌های منبع را در هر زمان ویرایش کنید (صرف‌نظر از اینکه دیگر توسعه‌دهندگان نرم‌افزار در حال ویرایش رونوشت‌های خود از منابع باشند یا خیر)؛ آن‌ها را به‌روزرسانی کنید تا تغییرات جدید اعمال‌شده توسط دیگران در مخزن منبع را در بر گیرند؛ یا کار خود را به عنوان یک تغییر دائمی در مخزن منبع ثبت (commit) کنید. .SP توجه داشته باشید که \fBcheckout\fR برای ایجاد دایرکتوری‌ها استفاده می‌شود. دایرکتوری سطح بالا که ایجاد می‌شود همواره به دایرکتوری محل فراخوانی \fBcheckout\fR افزوده می‌شود، و معمولاً نامی مشابه پودمان مشخص‌شده دارد. در مورد نام مستعار پودمان (module alias)، زیردایرکتوریِ ایجادشده ممکن است نام متفاوتی داشته باشد، اما می‌توانید مطمئن باشید که یک زیردایرکتوری خواهد بود و این‌که \fBcheckout\fR مسیر نسبی منتهی به هر پرونده را هنگام استخراج به فضای کاریِ خصوصی شما نشان خواهد داد (مگر اینکه گزینه سراسری \fB-Q\fR را تعیین کرده باشید). .SP پرونده‌های ایجادشده با \fBcheckout\fR به‌صورت خواندنی-نوشتنی ایجاد می‌شوند، مگر اینکه گزینه \fB-r\fR برای \fBcvs\fR (به گره `Global options\(aq در راهنمای CVS مراجعه کنید) تعیین شده باشد، متغیر محیطی \fBCVSREAD\fR مشخص شده باشد (به گره `Environment variables\(aq در راهنمای CVS مراجعه کنید)، یا یک دیده‌بان (watch) برای آن پرونده برقرار باشد (به گره `Watches\(aq در راهنمای CVS مراجعه کنید). .SP توجه داشته باشید که اجرای \fBcheckout\fR روی دایرکتوری‌ای که قبلاً توسط یک \fBcheckout\fR پیشین ساخته شده است نیز مجاز است. این امر مشابه تعیین گزینه \fB-d\fR برای دستور \fBupdate\fR است، از این جهت که دایرکتوری‌های جدیدی که در مخزن ایجاد شده‌اند در فضای کاری شما نمایان خواهند شد. با این وجود، \fBcheckout\fR نام یک پودمان را می‌گیرد در حالی که \fBupdate\fR نام یک دایرکتوری را دریافت می‌کند. همچنین برای استفاده از \fBcheckout\fR به این روش، دستور باید از دایرکتوری سطح بالا (جایی که در ابتدا \fBcheckout\fR را از آنجا اجرا کردید) اجرا شود؛ بنابراین پیش از اجرای \fBcheckout\fR برای به‌روزرسانی یک دایرکتوری موجود، فراموش نکنید که دایرکتوری خود را به دایرکتوری سطح بالا تغییر دهید. .SP برای بررسی خروجی تولیدشده توسط دستور \fBcheckout\fR، به گره `update output\(aq در راهنمای CVS مراجعه کنید. .SP .SH "گزینه‌های checkout (checkout options)" .SP این گزینه‌های استاندارد توسط \fBcheckout\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها، گره `Common options\(aq را در راهنمای CVS ببینید): .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 استفاده از تازه‌ترین بازبینی که پس از \fIdate\fR نباشد. این گزینه چسبنده است و متضمن \fB-P\fR می‌باشد. برای اطلاعات بیشتر درباره برچسب‌ها/تاریخ‌های چسبنده، `Sticky tags\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-f\fR .IP "" 2 تنها همراه با پرچم‌های \fB-D \fIdate\fB\fR یا \fB-r \fItag\fB\fR مفید است. اگر هیچ بازبینیِ مطابقی یافت نشود، تازه‌ترین بازبینی را بازیابی می‌کند (به جای نادیده گرفتن پرونده). .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش کلیدواژه‌ها بر اساس \fIkflag\fR. بخش `Keyword substitution\(aq را در راهنمای CVS ببینید. این گزینه چسبنده است؛ به‌روزرسانی‌های آینده‌ی این پرونده در این دایرکتوری کاری از همین \fIkflag\fR استفاده خواهند کرد. برای دیدن گزینه‌های چسبنده می‌توان دستور \fBstatus\fR را مشاهده کرد. برای اطلاعات بیشتر درباره دستور \fBstatus\fR، بخش `Invoking CVS\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ اجرا تنها در دایرکتوری کاری جاری. .SP .IP "" 0 \fB-n\fR .IP "" 2 هیچ برنامه checkoutای را اجرا نکن (همان‌طور که با گزینه \fB-o\fR در پرونده modules مشخص شده است؛ گره `modules\(aq را در راهنمای CVS ببینید). .SP .IP "" 0 \fB-P\fR .IP "" 2 هرس کردن دایرکتوری‌های خالی. بخش `Moving directories\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-p\fR .IP "" 2 ارسال پرونده‌ها با لوله (pipe) به خروجی استاندارد. .SP .IP "" 0 \fB-R\fR .IP "" 2 دریافت دایرکتوری‌ها به صورت بازگشتی. این گزینه به طور پیش‌فرض فعال است. .SP .IP "" 0 \fB-r \fItag\fB\fR .IP "" 2 استفاده از بازبینی \fItag\fR. این گزینه چسبنده است و متضمن \fB-P\fR می‌باشد. برای اطلاعات بیشتر درباره برچسب‌ها/تاریخ‌های چسبنده، `Sticky tags\(aq را در راهنمای CVS ببینید. .SP علاوه بر موارد یادشده، می‌توانید از این گزینه‌های ویژه دستور همراه با \fBcheckout\fR استفاده کنید: .SP .IP "" 0 \fB-A\fR .IP "" 2 بازنشانی هرگونه برچسب، تاریخ، یا گزینه‌های \fB-k\fR چسبنده. گزینه‌های \fB-k\fR چسبنده را روی پرونده‌های تغییریافته بازنشانی نمی‌کند. برای اطلاعات بیشتر درباره برچسب‌ها/تاریخ‌های چسبنده، `Sticky tags\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-c\fR .IP "" 2 رونوشت برداشتن از پرونده module، به صورت مرتب‌شده، در خروجی استاندارد، به جای ایجاد یا تغییر هرگونه پرونده یا دایرکتوری در دایرکتوری کاری شما. .SP .IP "" 0 \fB-d \fIdir\fB\fR .IP "" 2 ایجاد دایرکتوری‌ای به نام \fIdir\fR برای پرونده‌های کاری، به جای استفاده از نام ماژول. به طور کلی، استفاده از این پرچم معادل استفاده از \fBmkdir \fIdir\fB; cd \fIdir\fB\fR و به دنبال آن اجرای دستور checkout بدون پرچم \fB-d\fR است. .SP با این حال، یک استثنای مهم وجود دارد. هنگام دریافت یک مورد منفرد، بسیار مناسب است که خروجی در دایرکتوری‌ای ظاهر شود که شامل دایرکتوری‌های میانی خالی نباشد. \fIتنها\fR در این حالت، \fBcvs\fR تلاش می‌کند مسیرها را \`\`کوتاه\(aq\(aq کند تا از ایجاد آن دایرکتوری‌های خالی جلوگیری شود. .SP برای نمونه، با داشتن ماژول \fBfoo\fR که حاوی پرونده \fBbar.c\fR است، دستور \fBcvs co -d dir foo\fR دایرکتوری \fBdir\fR را ایجاد کرده و \fBbar.c\fR را در آن قرار می‌دهد. به طور مشابه، با داشتن ماژول \fBbar\fR که زیردایرکتوری \fBbaz\fR داشته و درون آن پرونده \fBquux.c\fR قرار دارد، دستور \fBcvs co -d dir bar/baz\fR دایرکتوری \fBdir\fR را ساخته و \fBquux.c\fR را درون آن می‌گذارد. .SP استفاده از پرچم \fB-N\fR این رفتار را باطل می‌کند. با همان تعاریف ماژول در بالا، دستور \fBcvs co -N -d dir foo\fR دایرکتوری‌های \fBdir/foo\fR را ساخته و \fBbar.c\fR را درون آن قرار می‌دهد، در حالی که دستور \fBcvs co -N -d dir bar/baz\fR دایرکتوری‌های \fBdir/bar/baz\fR را ساخته و \fBquux.c\fR را درون آن قرار خواهد داد. .SP .IP "" 0 \fB-j \fItag\fB\fR .IP "" 2 با دو گزینه \fB-j\fR، ادغام تغییرات از بازبینی مشخص‌شده با اولین گزینه \fB-j\fR به بازبینی مشخص‌شده با دومین گزینه \fBj\fR، درون دایرکتوری کاری. .SP با یک گزینه \fB-j\fR، ادغام تغییرات از بازبینی نیا (ancestor) به بازبینی مشخص‌شده با گزینه \fB-j\fR، درون دایرکتوری کاری. بازبینی نیا، نیای مشترک بازبینی مبنای دایرکتوری کاری و بازبینی مشخص‌شده در گزینه \fB-j\fR است. .SP علاوه بر این، هر گزینه -j می‌تواند شامل یک مشخصه تاریخ اختیاری باشد که در صورت استفاده با شاخه‌ها، می‌تواند بازبینی انتخاب‌شده را به یکی در یک تاریخ مشخص محدود کند. یک تاریخ اختیاری با افزودن دونقطه (:) به برچسب مشخص می‌شود: \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR. .SP بخش `Branching and merging\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-N\fR .IP "" 2 تنها همراه با \fB-d \fIdir\fB\fR مفید است. با این گزینه، \fBcvs\fR هنگام checkout کردن یک ماژول تنها، مسیرهای ماژول را در دایرکتوری کاری شما \`\`کوتاه\(aq\(aq نخواهد کرد. برای مثال‌ها و بررسی بیشتر، پرچم \fB-d\fR را ببینید. .SP .IP "" 0 \fB-s\fR .IP "" 2 مانند \fB-c\fR، اما شامل وضعیت تمام ماژول‌ها، و مرتب‌شده بر اساس رشته وضعیت. برای اطلاعات بیشتر درباره گزینه \fB-s\fR که درون پرونده modules برای تنظیم وضعیت ماژول به کار می‌رود، بخش `modules\(aq را در راهنمای CVS ببینید. .SP .SH "checkout examples - نمونه‌های checkout" .SP دریافت یک نسخه از ماژول \fBtc\fR: .SP .PD 0 .SP .IP "" 2 $ cvs checkout tc .PD .IP "" 0 .SP دریافت یک نسخه از ماژول \fBtc\fR به همان صورتی که یک روز پیش بود: .SP .PD 0 .SP .IP "" 2 $ cvs checkout -D yesterday tc .PD .IP "" 0 .SP .SH "commit - ثبت تغییرات (commit)" .SS "Check files into the repository - تحویل فایل‌ها به مخزن" .IX "commit (subcommand)" .SP .IP "\(bu" 2 خلاصه: commit [-lRf] [-m \(aqlog_message\(aq | -F file] [-r revision] [files\&...] .IP "\(bu" 2 پیش‌نیاز: دایرکتوری کاری، مخزن. .IP "\(bu" 2 تغییرات: مخزن. .IP "\(bu" 2 مترادف: ci .SP هنگامی که می‌خواهید تغییرات فایل‌های منبع کاری خود را در مخزن منبع اعمال کنید، از \fBcommit\fR استفاده نمایید. .SP اگر پرونده‌های مشخصی را برای ثبت (commit) تعیین نکنید، تمام پرونده‌های موجود در دایرکتوری کاری فعلی شما بررسی می‌شوند. دستور \fBcommit\fR دقت می‌کند که در مخزن تنها پرونده‌هایی را تغییر دهد که واقعاً آن‌ها را تغییر داده‌اید. به‌طور پیش‌فرض (یا اگر صراحتاً گزینه \fB-R\fR را مشخص کنید)، پرونده‌های موجود در زیردایرکتوری‌ها نیز بررسی شده و در صورت تغییر یافتن، ثبت می‌شوند؛ می‌توانید از گزینه \fB-l\fR برای محدود کردن \fBcommit\fR تنها به دایرکتوری فعلی استفاده کنید. .SP دستور \fBcommit\fR بررسی می‌کند که آیا پرونده‌های انتخاب‌شده با آخرین بازبینی‌های موجود در مخزن منبع به‌روز هستند یا خیر؛ چنانچه هر یک از پرونده‌های مشخص‌شده ابتدا نیاز به به‌روزرسانی با \fBupdate\fR داشته باشند، این موضوع را به شما اطلاع داده و بدون ثبت تغییرات خارج می‌شود (به گره `update\(aq در راهنمای CVS مراجعه کنید). دستور \fBcommit\fR دستور \fBupdate\fR را به‌جای شما فراخوانی نمی‌کند، بلکه انجام آن را در زمان مناسب به خود شما واگذار می‌نماید. .SP هنگامی که همه‌چیز مرتب باشد، یک ویرایشگر باز می‌شود تا بتوانید پیام گزارشی (log message) وارد کنید که در یک یا چند برنامه ثبت گزارش نوشته خواهد شد (به گره `modules\(aq در راهنمای CVS، و به گره `loginfo\(aq در راهنمای CVS مراجعه کنید) و در پرونده \fBrcs\fR درون مخزن قرار می‌گیرد. این پیام گزارش را می‌توان با دستور \fBlog\fR بازیابی کرد؛ به گره `log\(aq در راهنمای CVS مراجعه کنید. می‌توانید پیام گزارش را در خط فرمان با گزینه \fB-m \fImessage\fB\fR مشخص کنید و بدین ترتیب از باز شدن ویرایشگر جلوگیری نمایید، یا از گزینه \fB-F \fIfile\fB\fR استفاده کنید تا مشخص نمایید که پرونده آرگومان حاوی پیام گزارش است. .SP .SH "commit options - گزینه‌های commit" .SP این گزینه‌های استاندارد توسط \fBcommit\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ فقط در دایرکتوری کاری فعلی اجرا می‌شود. .SP .IP "" 0 \fB-R\fR .IP "" 2 ثبت دایرکتوری‌ها به‌صورت بازگشتی. این حالت به‌طور پیش‌فرض فعال است. .SP .IP "" 0 \fB-r \fIrevision\fB\fR .IP "" 2 ثبت در \fIrevision\fR. مقدار \fIrevision\fR باید یا یک شاخه باشد، یا یک بازبینی در شاخه اصلی (main trunk) که از تمام شماره‌های بازبینی موجود بزرگ‌تر است (به گره `Assigning revisions\(aq در راهنمای CVS مراجعه کنید). نمی‌توانید در یک بازبینی مشخص روی یک شاخه commit کنید. .SP دستور \fBcommit\fR از این گزینه‌ها نیز پشتیبانی می‌کند: .SP .IP "" 0 \fB-F \fIfile\fB\fR .IP "" 2 خواندن پیام گزارش از \fIfile\fR، به‌جای باز کردن یک ویرایشگر. .SP .IP "" 0 \fB-f\fR .IP "" 2 توجه داشته باشید که این رفتار استاندارد گزینه \fB-f\fR به شکلی که در گره `Common options\(aq در راهنمای CVS تعریف شده، نیست. .SP مجبور کردن \fBcvs\fR به ثبت یک بازبینی جدید حتی اگر هیچ تغییری در پرونده ایجاد نکرده باشید. اگر بازبینی فعلی \fIfile\fR برابر 1.7 باشد، دو دستور زیر معادل یکدیگر هستند: .SP .PD 0 .SP .IP "" 4 $ cvs commit -f \fIfile\fR .IP "" 4 $ cvs commit -r 1.8 \fIfile\fR .PD .IP "" 2 .SP گزینه \fB-f\fR حالت بازگشتی را غیرفعال می‌کند (یعنی متضمن \fB-l\fR است). برای مجبور کردن \fBcvs\fR به ثبت یک بازبینی جدید برای تمام پرونده‌ها در تمام زیردایرکتوری‌ها، باید از \fB-f -R\fR استفاده کنید. .SP .IP "" 0 \fB-m \fImessage\fB\fR .IP "" 2 استفاده از \fImessage\fR به‌عنوان پیام گزارش، به‌جای باز کردن یک ویرایشگر. .SP .SH "commit examples - مثال‌های commit" .SP .SS "Committing to a branch - ثبت روی یک شاخه" .SP شما می‌توانید با گزینه \fB-r\fR تغییرات را در یک بازنگری شاخه‌ای (بازنگری‌ای که تعداد نقطه‌های آن زوج است) ثبت (commit) کنید. برای ایجاد یک بازنگری شاخه‌ای، از گزینه \fB-b\fR در دستورهای \fBrtag\fR یا \fBtag\fR استفاده کنید (گره `Branching and merging\(aq را در راهنمای CVS ببینید). سپس می‌توان از \fBcheckout\fR یا \fBupdate\fR استفاده کرد تا کدهای منبع خود را بر پایه شاخه تازه ایجادشده قرار دهید. از آن نقطه به بعد، تمام تغییرات حاصل از \fBcommit\fR که در این کدهای منبع کاری ایجاد شوند، به‌طور خودکار به یک بازنگری شاخه‌ای افزوده خواهند شد و بدین ترتیب به هیچ وجه روند توسعه خط اصلی را مختل نمی‌کنند. برای نمونه، اگر مجبور بودید وصله‌ای (patch) برای نسخه 1.2 محصول ایجاد کنید، حتی با اینکه نسخه 2.0 از قبل در دست توسعه است، می‌توانید این‌گونه عمل کنید: .SP .PD 0 .SP .IP "" 2 $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module .IP "" 2 $ cvs checkout -r FCS1_2_Patch product_module .IP "" 2 $ cd product_module .IP "" 2 [[ hack away ]] .IP "" 2 $ cvs commit .PD .IP "" 0 .SP این کار به‌صورت خودکار عمل می‌کند زیرا گزینه \fB-r\fR چسبنده (sticky) است. .SP .SS "Creating the branch after editing - ایجاد شاخه پس از ویرایش" .SP فرض کنید روی نرم‌افزاری بسیار تجربی کار کرده‌اید که بر پایه هر بازنگری‌ای است که هفته گذشته اتفاقی دریافت (checkout) کرده بودید. اگر دیگر اعضای گروه شما مایل باشند بدون مختل کردن توسعه خط اصلی با شما روی این نرم‌افزار کار کنند، می‌توانید تغییرات خود را روی یک شاخه جدید ثبت کنید. سپس دیگران می‌توانند کدهای آزمایشی شما را دریافت (checkout) کرده و از مزیت کامل قابلیت رفع تعارض \fBcvs\fR بهره‌مند شوند. سناریو ممکن است به این شکل باشد: .SP .PD 0 .SP .IP "" 2 [[ hacked sources are present ]] .IP "" 2 $ cvs tag -b EXPR1 .IP "" 2 $ cvs update -r EXPR1 .IP "" 2 $ cvs commit .PD .IP "" 0 .SP دستور \fBupdate\fR گزینه \fB-r EXPR1\fR را روی تمام فایل‌ها چسبنده (sticky) خواهد کرد. توجه داشته باشید که تغییرات شما روی فایل‌ها هرگز توسط دستور \fBupdate\fR حذف نخواهند شد. دستور \fBcommit\fR به‌طور خودکار تغییرات را روی شاخه درست ثبت می‌کند، زیرا \fB-r\fR چسبنده است. همچنین می‌توانید به این صورت عمل کنید: .SP .PD 0 .SP .IP "" 2 [[ hacked sources are present ]] .IP "" 2 $ cvs tag -b EXPR1 .IP "" 2 $ cvs commit -r EXPR1 .PD .IP "" 0 .SP اما در این حالت، تنها فایل‌هایی که توسط شما تغییر داده شده‌اند نشان چسبنده \fB-r EXPR1\fR را خواهند داشت. اگر کار را ادامه دهید و بدون مشخص کردن پرچم \fB-r EXPR1\fR عمل ثبت (commit) را انجام دهید، ممکن است برخی از فایل‌ها تصادفاً سر از تنه اصلی (main trunk) درآورند. .SP برای کار با شما روی تغییرات تجربی، دیگران به سادگی انجام می‌دهند: .SP .PD 0 .SP .IP "" 2 $ cvs checkout -r EXPR1 whatever_module .PD .IP "" 0 .SP .SH "diff - بررسی تفاوت‌ها (diff)" .SS "Show differences between revisions - نمایش تفاوت‌های میان بازنگری‌ها" .IX "diff (subcommand)" .SP .IP "\(bu" 2 خلاصه دستور (Synopsis): diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D date1] [-r rev2 | -D date2]] [files\&...] .IP "\(bu" 2 نیازمندی‌ها (Requires): دایرکتوری کاری، مخزن. .IP "\(bu" 2 تغییرات (Changes): هیچ‌چیز. .SP دستور \fBdiff\fR برای مقایسه بازنگری‌های مختلف فایل‌ها به کار می‌رود. رفتار پیش‌فرض، مقایسه فایل‌های کاری شما با بازنگری‌هایی است که بر پایه‌شان ایجاد شده‌اند و گزارش هر تفاوتی که پیدا شود. .SP اگر نام فایلی داده شود، تنها آن فایل‌ها مقایسه می‌شوند. اگر دایرکتوری داده شود، تمام فایل‌های زیرمجموعه آن‌ها مقایسه خواهند شد. .SP وضعیت خروج (exit status) برای diff با دیگر دستورهای \fBcvs\fR متفاوت است؛ برای جزئیات به گره `Exit status\(aq در راهنمای CVS مراجعه کنید. .SP .SH "diff options - گزینه‌های diff" .SP این گزینه‌های استاندارد توسط \fBdiff\fR پشتیبانی می‌شوند (برای توضیحات کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 استفاده از تازه‌ترین بازبینی که پس از \fIdate\fR نباشد. برای چگونگی تأثیر این گزینه بر مقایسه، \fB-r\fR را ببینید. .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش کلیدواژه‌ها بر اساس \fIkflag\fR. بخش `Keyword substitution\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ اجرا تنها در شاخه کاری فعلی. .SP .IP "" 0 \fB-R\fR .IP "" 2 بررسی بازگشتی شاخه‌ها. این گزینه به‌طور پیش‌فرض فعال است. .SP .IP "" 0 \fB-r \fItag\fB\fR .IP "" 2 مقایسه با بازبینی \fItag\fR. صفر، یک یا دو گزینه \fB-r\fR می‌تواند مشخص شود. بدون گزینه \fB-r\fR، پرونده کاری با بازبینی‌ای که بر پایه آن بوده مقایسه خواهد شد. با یک گزینه \fB-r\fR، آن بازبینی با پرونده کاری فعلی شما مقایسه می‌شود. با دو گزینه \fB-r\fR، آن دو بازبینی با یکدیگر مقایسه می‌شوند (و پرونده کاری شما به هیچ وجه بر نتیجه تأثیری نخواهد داشت). .SP یک یا هر دو گزینه \fB-r\fR را می‌توان با گزینه \fB-D \fIdate\fB\fR (که در بالا شرح داده شد) جایگزین کرد. .SP گزینه‌های زیر قالب خروجی را تعیین می‌کنند. آن‌ها همان معنای موجود در GNU diff را دارند. بیشتر گزینه‌ها دو نام معادل دارند؛ یکی تک‌حرفی با پیشوند \fB-\fR، و دیگری نامی طولانی با پیشوند \fB--\fR. .SP .IP "" 0 \fB-\fIlines\fB\fR .IP "" 2 نمایش \fIlines\fR (یک عدد صحیح) خط از بافت پیرامونی. این گزینه به خودی خود قالب خروجی را مشخص نمی‌کند؛ و اثری ندارد مگر اینکه با \fB-c\fR یا \fB-u\fR ترکیب شود. این گزینه منسوخ است. برای عملکرد صحیح، \fBpatch\fR معمولاً دست‌کم به دو خط بافت نیاز دارد. .SP .IP "" 0 \fB-a\fR .IP "" 2 رفتار با همه پرونده‌ها به عنوان متنی و مقایسه خط به خط آن‌ها، حتی اگر متنی به نظر نرسند. .SP .IP "" 0 \fB-b\fR .IP "" 2 نادیده گرفتن فاصله‌های خالی انتهایی خط و معادل دانستن تمام توالی‌های دیگر شامل یک یا چند نویسه فاصله خالی. .SP .IP "" 0 \fB-B\fR .IP "" 2 نادیده گرفتن تغییراتی که صرفاً خطوط خالی درج یا حذف می‌کنند. .SP .IP "" 0 \fB--binary\fR .IP "" 2 خواندن و نوشتن داده‌ها در حالت دودویی (باینری). .SP .IP "" 0 \fB--brief\fR .IP "" 2 تنها گزارش دادن اینکه آیا پرونده‌ها تفاوت دارند یا خیر، بدون جزئیات تفاوت‌ها. .SP .IP "" 0 \fB-c\fR .IP "" 2 استفاده از قالب خروجی بافت پیرامونی. .SP .IP "" 0 \fB-C \fIlines\fB\fR .IP "" 2 .IP "" 0 \fB--context\fR[\fB=\fIlines\fB\fR]\fB\fR .IP "" 2 استفاده از قالب خروجی بافت پیرامونی، با نمایش \fIlines\fR (یک عدد صحیح) خط از بافت، یا سه خط در صورتی که \fIlines\fR داده نشده باشد. برای عملکرد صحیح، \fBpatch\fR معمولاً دست‌کم به دو خط بافت نیاز دارد. .SP .IP "" 0 \fB--changed-group-format=\fIformat\fB\fR .IP "" 2 استفاده از \fIformat\fR برای نمایش گروهی از خطوط شامل خطوط متفاوت از هر دو پرونده در قالب if-then-else. بخش `Line group formats\(aq را در راهنمای CVS ببینید. .SP .IP "" 0 \fB-d\fR .IP "" 2 تغییر الگوریتم برای احتمالاً یافتن مجموعه‌ای کوچک‌تر از تغییرات. این کار \fBdiff\fR را کندتر (گاهی بسیار کندتر) می‌کند. .SP .IP "" 0 \fB-e\fR .IP "" 2 .IP "" 0 \fB--ed\fR .IP "" 2 تولید خروجی به‌صورت یک کدنوشته معتبر \fBed\fR. .SP .IP "" 0 \fB--expand-tabs\fR .IP "" 2 گسترش نویسه‌های تب به فاصله در خروجی، به منظور حفظ تراز تب‌ها در پرونده‌های ورودی. .SP .IP "" 0 \fB-f\fR .IP "" 2 تولید خروجی که تا حدی شبیه کدنوشته \fBed\fR است اما تغییرات در آن به همان ترتیبی که در پرونده آمده‌اند، قرار دارند. .SP .IP "" 0 \fB-F \fIregexp\fB\fR .IP "" 2 در قالب‌های context و unified، برای هر قطعه تفاوت (hunk)، نمایش بخشی از آخرین خط پیشین که با \fIregexp\fR تطابق دارد. .SP .IP "" 0 \fB--forward-ed\fR .IP "" 2 تولید خروجی که تا حدی شبیه کدنوشته \fBed\fR است اما تغییرات در آن به همان ترتیبی که در پرونده آمده‌اند، قرار دارند. .SP .IP "" 0 \fB-H\fR .IP "" 2 استفاده از روش‌های اکتشافی (heuristics) برای افزایش سرعت پردازش پرونده‌های بزرگی که دارای تغییرات کوچک و پراکنده زیادی هستند. .SP .IP "" 0 \fB--horizon-lines=\fIlines\fB\fR .IP "" 2 دور نینداختن \fIlines\fR خط انتهایی از پیشوند مشترک و \fIlines\fR خط ابتدایی از پسوند مشترک. .SP .IP "" 0 \fB-i\fR .IP "" 2 نادیده گرفتن تغییرات بزرگی و کوچکی حروف؛ معادل دانستن حروف بزرگ و کوچک. .SP .IP "" 0 \fB-I \fIregexp\fB\fR .IP "" 2 نادیده گرفتن تغییراتی که صرفاً خطوط منطبق با \fIregexp\fR را درج یا حذف می‌کنند. .SP .IP "" 0 \fB--ifdef=\fIname\fB\fR .IP "" 2 تولید خروجی ادغام‌شده if-then-else با استفاده از \fIname\fR. .SP .IP "" 0 \fB--ignore-all-space\fR .IP "" 2 نادیده گرفتن فاصله‌های خالی هنگام مقایسه خطوط. .SP .IP "" 0 \fB--ignore-blank-lines\fR .IP "" 2 نادیده گرفتن تغییراتی که صرفاً خطوط خالی درج یا حذف می‌کنند. .SP .IP "" 0 \fB--ignore-case\fR .IP "" 2 نادیده گرفتن تغییرات بزرگی و کوچکی حروف؛ یکسان دانستن حروف بزرگ و کوچک. .SP .IP "" 0 \fB--ignore-matching-lines=\fIregexp\fB\fR .IP "" 2 نادیده گرفتن تغییراتی که صرفاً خطوط منطبق با \fIregexp\fR را درج یا حذف می‌کنند. .SP .IP "" 0 \fB--ignore-space-change\fR .IP "" 2 نادیده گرفتن فاصله‌های خالی انتهایی خط و معادل دانستن تمام توالی‌های دیگر شامل یک یا چند نویسه فاصله خالی. .SP .IP "" 0 \fB--initial-tab\fR .IP "" 2 در قالب‌های عادی یا زمینه‌ای، به جای فاصله، یک تب پیش از متن خط چاپ می‌کند. این کار باعث می‌شود چینش تب‌ها درون خط طبیعی به نظر برسد. .SP .IP "" 0 \fB-L \fIlabel\fB\fR .IP "" 2 در سرآیندهای قالب‌های زمینه‌ای و یکپارچه، از \fIlabel\fR به جای نام پرونده استفاده می‌کند. .SP .IP "" 0 \fB--label=\fIlabel\fB\fR .IP "" 2 در سرآیندهای قالب‌های زمینه‌ای و یکپارچه، از \fIlabel\fR به جای نام پرونده استفاده می‌کند. .SP .IP "" 0 \fB--left-column\fR .IP "" 2 در قالب کنار هم (side by side)، برای خطوط مشترک، تنها ستون سمت چپ را چاپ می‌کند. .SP .IP "" 0 \fB--line-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن تمام خطوط ورودی در قالب if-then-else استفاده می‌کند. به `Line formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB--minimal\fR .IP "" 2 الگوریتم را برای احتمالاً یافتن مجموعهٔ کوچکتری از تغییرات تغییر می‌دهد. این کار \fBdiff\fR را کندتر می‌کند (گاهی بسیار کندتر). .SP .IP "" 0 \fB-n\fR .IP "" 2 تفاوت‌ها را در قالب RCS خروجی می‌دهد؛ مانند \fB-f\fR به جز این‌که هر دستور تعداد خطوط متأثر را مشخص می‌کند. .SP .IP "" 0 \fB-N\fR .IP "" 2 .IP "" 0 \fB--new-file\fR .IP "" 2 در مقایسهٔ دایرکتوری‌ها، اگر پرونده‌ای تنها در یکی از دایرکتوری‌ها یافت شود، آن را طوری در نظر می‌گیرد که گویی در دایرکتوری دیگر نیز وجود دارد ولی خالی است. .SP .IP "" 0 \fB--new-group-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن گروهی از خطوط برگرفته از پروندهٔ دوم به قالب if-then-else استفاده می‌کند. به `Line group formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB--new-line-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن خطی برگرفته از پروندهٔ دوم به قالب if-then-else استفاده می‌کند. به `Line formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB--old-group-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن گروهی از خطوط برگرفته از پروندهٔ اول به قالب if-then-else استفاده می‌کند. به `Line group formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB--old-line-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن خطی برگرفته از پروندهٔ اول به قالب if-then-else استفاده می‌کند. به `Line formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-p\fR .IP "" 2 نشان می‌دهد که هر تغییر در کدام تابع C قرار دارد. .SP .IP "" 0 \fB--rcs\fR .IP "" 2 تفاوت‌ها را در قالب RCS خروجی می‌دهد؛ مانند \fB-f\fR به جز این‌که هر دستور تعداد خطوط متأثر را مشخص می‌کند. .SP .IP "" 0 \fB--report-identical-files\fR .IP "" 2 .IP "" 0 \fB-s\fR .IP "" 2 گزارش می‌دهد که چه زمانی دو پرونده یکسان هستند. .SP .IP "" 0 \fB--show-c-function\fR .IP "" 2 نشان می‌دهد که هر تغییر در کدام تابع C قرار دارد. .SP .IP "" 0 \fB--show-function-line=\fIregexp\fB\fR .IP "" 2 در قالب‌های زمینه‌ای و یکپارچه، برای هر تکه (hunk) از تفاوت‌ها، بخشی از آخرین خط پیشین را که با \fIregexp\fR مطابقت دارد نشان می‌دهد. .SP .IP "" 0 \fB--side-by-side\fR .IP "" 2 از قالب خروجی کنار هم (side by side) استفاده می‌کند. .SP .IP "" 0 \fB--speed-large-files\fR .IP "" 2 برای سرعت بخشیدن به پردازش پرونده‌های بزرگ با تغییرات کوچک و پراکندهٔ زیاد، از فنون مکاشفه‌ای (heuristics) استفاده می‌کند. .SP .IP "" 0 \fB--suppress-common-lines\fR .IP "" 2 در قالب کنار هم، خطوط مشترک را چاپ نمی‌کند. .SP .IP "" 0 \fB-t\fR .IP "" 2 در خروجی، تب‌ها را به فاصله‌ها گسترش می‌دهد تا چینش تب‌ها در پرونده‌های ورودی حفظ شود. .SP .IP "" 0 \fB-T\fR .IP "" 2 در قالب‌های عادی یا زمینه‌ای، به جای فاصله، یک تب پیش از متن خط خروجی می‌دهد. این کار باعث می‌شود چینش تب‌ها در خط طبیعی به نظر برسد. .SP .IP "" 0 \fB--text\fR .IP "" 2 تمام پرونده‌ها را متنی در نظر گرفته و آن‌ها را خط‌به‌خط مقایسه می‌کند، حتی اگر متنی به نظر نرسند. .SP .IP "" 0 \fB-u\fR .IP "" 2 از قالب خروجی یکپارچه (unified) استفاده می‌کند. .SP .IP "" 0 \fB--unchanged-group-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن گروهی از خطوط مشترک برگرفته از هر دو پرونده به قالب if-then-else استفاده می‌کند. به گره `Line group formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB--unchanged-line-format=\fIformat\fB\fR .IP "" 2 از \fIformat\fR برای خروجی دادن خطی مشترک بین هر دو پرونده به قالب if-then-else استفاده می‌کند. به گره `Line formats\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-U \fIlines\fB\fR .IP "" 2 .IP "" 0 \fB--unified\fR[\fB=\fIlines\fB\fR]\fB\fR .IP "" 2 از قالب خروجی یکپارچه استفاده می‌کند و \fIlines\fR (یک عدد صحیح) خط زمینه را نشان می‌دهد؛ در صورت مشخص نشدن \fIlines\fR، مقدار پیش‌فرض سه خط است. برای کارکرد صحیح، برنامهٔ \fBpatch\fR معمولاً حداقل به دو خط زمینه نیاز دارد. .SP .IP "" 0 \fB-w\fR .IP "" 2 هنگام مقایسه خطوط، فاصله‌های خالی (white space) را نادیده می‌گیرد. .SP .IP "" 0 \fB-W \fIcolumns\fB\fR .IP "" 2 .IP "" 0 \fB--width=\fIcolumns\fB\fR .IP "" 2 عرض خروجی را در قالب کنار هم (side by side) برابر با \fIcolumns\fR قرار می‌دهد. .SP .IP "" 0 \fB-y\fR .IP "" 2 از قالب خروجی کنار هم (side by side) استفاده می‌کند. .SP .SH "Line group formats - قالب‌های گروه خط" .SP قالب‌های گروه خط به شما امکان می‌دهند قالب‌های مناسب برای بسیاری از برنامه‌هایی که ورودی if-then-else را می‌پذیرند مشخص کنید، از جمله زبان‌های برنامه‌نویسی و زبان‌های قالب‌بندی متن. یک قالب گروه خط، قالب خروجی را برای گروهی پیوسته از خطوط مشابه تعیین می‌کند. .SP به‌عنوان مثال، دستور زیر فایل TeX به نام \fBmyfile\fR را با نسخه اصلی از مخزن مقایسه می‌کند، و فایلی ادغام‌شده خروجی می‌دهد که در آن بخش‌های قدیمی با خطوط \fB\\begin{em}\fR-\fB\\end{em}\fR احاطه شده‌اند، و بخش‌های جدید با خطوط \fB\\begin{bf}\fR-\fB\\end{bf}\fR احاطه شده‌اند. .SP .PD 0 .SP .IP "" 2 cvs diff \\ .IP "" 2 --old-group-format=\(aq\\begin{em} .IP "" 2 %<\\end{em} .IP "" 2 \(aq \\ .IP "" 2 --new-group-format=\(aq\\begin{bf} .IP "" 2 %>\\end{bf} .IP "" 2 \(aq \\ .IP "" 2 myfile .PD .IP "" 0 .SP دستور زیر معادل مثال بالا است، اما کمی پرحرف‌تر (مفصل‌تر) است زیرا قالب‌های پیش‌فرض گروه خط را صراحتاً بیان می‌کند. .SP .PD 0 .SP .IP "" 2 cvs diff \\ .IP "" 2 --old-group-format=\(aq\\begin{em} .IP "" 2 %<\\end{em} .IP "" 2 \(aq \\ .IP "" 2 --new-group-format=\(aq\\begin{bf} .IP "" 2 %>\\end{bf} .IP "" 2 \(aq \\ .IP "" 2 --unchanged-group-format=\(aq%=\(aq \\ .IP "" 2 --changed-group-format=\(aq\\begin{em} .IP "" 2 %<\\end{em} .IP "" 2 \\begin{bf} .IP "" 2 %>\\end{bf} .IP "" 2 \(aq \\ .IP "" 2 myfile .PD .IP "" 0 .SP در اینجا مثالی پیشرفته‌تر آورده شده است، که فهرستی از diff را با سرآیندهای حاوی شماره خطوط به سبکی شبیه به «انگلیسی روان» خروجی می‌دهد. .SP .PD 0 .SP .IP "" 2 cvs diff \\ .IP "" 2 --unchanged-group-format=\(aq\(aq \\ .IP "" 2 --old-group-format=\(aq-------- %dn line%(n=1?:s) deleted at %df: .IP "" 2 %<\(aq \\ .IP "" 2 --new-group-format=\(aq-------- %dN line%(N=1?:s) added after %de: .IP "" 2 %>\(aq \\ .IP "" 2 --changed-group-format=\(aq-------- %dn line%(n=1?:s) changed at %df: .IP "" 2 %<-------- to: .IP "" 2 %>\(aq \\ .IP "" 2 myfile .PD .IP "" 0 .SP برای مشخص کردن یک قالب گروه خط، از یکی از گزینه‌های فهرست‌شده در زیر استفاده کنید. می‌توانید تا چهار قالب گروه خط مشخص کنید، یکی برای هر نوع از گروه‌های خط. باید \fIformat\fR را درون علامت نقل‌قول قرار دهید، زیرا معمولاً حاوی نویسه‌های کنترلی شل است. .SP .IP "" 0 \fB--old-group-format=\fIformat\fB\fR .IP "" 2 این گروه‌های خط، تکه‌هایی (hunks) هستند که تنها شامل خطوطی از فایل اول می‌باشند. قالب پیش‌فرض گروه قدیمی همانند قالب گروه تغییریافته است در صورتی که مشخص شده باشد؛ در غیر این صورت قالبی است که گروه خط را همان‌گونه که هست خروجی می‌دهد. .SP .IP "" 0 \fB--new-group-format=\fIformat\fB\fR .IP "" 2 این گروه‌های خط، تکه‌هایی هستند که تنها شامل خطوطی از فایل دوم می‌باشند. قالب پیش‌فرض گروه جدید همانند قالب گروه تغییریافته است در صورتی که مشخص شده باشد؛ در غیر این صورت قالبی است که گروه خط را همان‌گونه که هست خروجی می‌دهد. .SP .IP "" 0 \fB--changed-group-format=\fIformat\fB\fR .IP "" 2 این گروه‌های خط، تکه‌هایی هستند که شامل خطوطی از هر دو فایل می‌باشند. قالب پیش‌فرض گروه تغییریافته الحاق قالب‌های گروه قدیمی و جدید است. .SP .IP "" 0 \fB--unchanged-group-format=\fIformat\fB\fR .IP "" 2 این گروه‌های خط شامل خطوط مشترک در هر دو فایل هستند. قالب پیش‌فرض گروه بدون‌تغییر قالبی است که گروه خط را همان‌گونه که هست خروجی می‌دهد. .SP در قالب گروه خط، نویسه‌های معمولی نمایانگر خودشان هستند؛ مشخصات تبدیل با \fB%\fR آغاز می‌شوند و یکی از شکل‌های زیر را دارند. .SP .IP "" 0 \fB%<\fR .IP "" 2 نمایانگر خطوط فایل اول است، شامل نویسه خط جدید در انتها. هر خط بر اساس قالب خط قدیمی قالب‌بندی می‌شود (به گره `Line formats\(aq در راهنمای CVS مراجعه کنید). .SP .IP "" 0 \fB%>\fR .IP "" 2 نمایانگر خطوط فایل دوم است، شامل نویسه خط جدید در انتها. هر خط بر اساس قالب خط جدید قالب‌بندی می‌شود. .SP .IP "" 0 \fB%=\fR .IP "" 2 نمایانگر خطوط مشترک در هر دو فایل است، شامل نویسه خط جدید در انتها. هر خط بر اساس قالب خط بدون‌تغییر قالب‌بندی می‌شود. .SP .IP "" 0 \fB%%\fR .IP "" 2 نمایانگر \fB%\fR است. .SP .IP "" 0 \fB%c\(aq\fIC\fB\(aq\fR .IP "" 2 که در آن \fIC\fR یک نویسه تکی است، نمایانگر \fIC\fR می‌باشد. \fIC\fR نباید بک‌اسلش یا آپوستروف باشد. به‌عنوان مثال، \fB%c\(aq:\(aq\fR نمایانگر دو‌نقطه است، حتی درون بخش then از قالب if-then-else، جایی که دونقطه به‌طور معمول به آن خاتمه می‌دهد. .SP .IP "" 0 \fB%c\(aq\\\fIO\fB\(aq\fR .IP "" 2 که در آن \fIO\fR رشته‌ای از ۱، ۲ یا ۳ رقم هشت‌هشتی (octal) است، نمایانگر نویسه‌ای با کد هشت‌هشتی \fIO\fR می‌باشد. به‌عنوان مثال، \fB%c\(aq\\0\(aq\fR نمایانگر نویسه تهی (null) است. .SP .IP "" 0 \fB\fIF\fB\fIn\fB\fR .IP "" 2 که در آن \fIF\fR یک مشخصه تبدیل \fBprintf\fR است و \fIn\fR یکی از حروف زیر می‌باشد، نمایانگر مقدار \fIn\fR قالب‌بندی‌شده با \fIF\fR است. .SP .IP "" 2 \fBe\fR .IP "" 4 شماره خط دقیقاً قبل از گروه در فایل قدیمی. .SP .IP "" 2 \fBf\fR .IP "" 4 شماره خط اولین خط در گروه در فایل قدیمی؛ برابر است با \fIe\fR + 1. .SP .IP "" 2 \fBl\fR .IP "" 4 شماره خط آخرین خط در گروه در فایل قدیمی. .SP .IP "" 2 \fBm\fR .IP "" 4 شماره خط بلافاصله بعد از گروه در فایل قدیمی؛ برابر با \fIl\fR + 1 است. .SP .IP "" 2 \fBn\fR .IP "" 4 تعداد خط‌های موجود در گروه در فایل قدیمی؛ برابر با \fIl\fR - \fIf\fR + 1 است. .SP .IP "" 2 \fBE, F, L, M, N\fR .IP "" 4 به همین ترتیب، برای خط‌های موجود در فایل جدید. .SP .SP مشخصه تبدیل \fBprintf\fR می‌تواند \fB%d\fR، \fB%o\fR، \fB%x\fR یا \fB%X\fR باشد که به‌ترتیب خروجی ده‌دهی، هشت‌هشتی، شانزده‌شانزدهی با حروف کوچک، یا شانزده‌شانزدهی با حروف بزرگ را مشخص می‌کند. پس از \fB%\fR گزینه‌های زیر می‌توانند به‌ترتیب قرار گیرند: یک \fB-\fR برای تراز چپ؛ یک عدد صحیح برای تعیین حداقل عرض فیلد؛ و یک نقطه به همراه یک عدد صحیح اختیاری برای تعیین حداقل تعداد ارقام. برای مثال، \fB%5dN\fR تعداد خط‌های جدید در گروه را در فیلدی به عرض ۵ نویسه، با استفاده از قالب \fB"%5d"\fR در \fBprintf\fR چاپ می‌کند. .SP .IP "" 0 \fB(\fIA\fB=\fIB\fB?\fIT\fB:\fIE\fB)\fR .IP "" 2 اگر \fIA\fR برابر با \fIB\fR باشد آن‌گاه \fIT\fR وگرنه \fIE\fR. هرکدام از \fIA\fR و \fIB\fR یک مقدار ثابت ده‌دهی یا یک تک‌حرف تفسیرشده به شیوه بالا هستند. این مشخصه قالب برابر با \fIT\fR خواهد بود اگر مقدار \fIA\fR برابر با \fIB\fR باشد؛ در غیر این صورت برابر با \fIE\fR است. .SP برای مثال، \fB%(N=0?no:%dN) line%(N=1?:s)\fR معادل \fBno lines\fR است اگر \fIN\fR (تعداد خط‌های گروه در فایل جدید) 0 باشد، معادل \fB1 line\fR اگر \fIN\fR برابر با 1 باشد، و در غیر این صورت معادل \fB%dN lines\fR است. .SP .SH "Line formats - قالب‌های خط" .SP قالب‌های خط نحوه نمایش هر خط گرفته‌شده از یک فایل ورودی را به‌عنوان بخشی از یک گروه خط در قالب شرطی (if-then-else) کنترل می‌کنند. .SP برای مثال، دستور زیر متن را به همراه یک نشانگر تغییر تک‌ستونی در سمت چپ متن چاپ می‌کند. نخستین ستون خروجی برای خط‌های حذف‌شده \fB-\fR، برای خط‌های اضافه‌شده \fB|\fR، و برای خط‌های بدون تغییر یک فاصله است. قالب‌ها در جاهایی که سطر تازه در خروجی مورد نیاز است حاوی نویسه سطر تازه هستند. .SP .PD 0 .SP .IP "" 2 cvs diff \\ .IP "" 2 --old-line-format=\(aq-%l .IP "" 2 \(aq \\ .IP "" 2 --new-line-format=\(aq|%l .IP "" 2 \(aq \\ .IP "" 2 --unchanged-line-format=\(aq %l .IP "" 2 \(aq \\ .IP "" 2 myfile .PD .IP "" 0 .SP برای تعیین قالب خط، از یکی از گزینه‌های زیر استفاده کنید. بهتر است \fIformat\fR را درون نقل‌قول قرار دهید، چرا که اغلب شامل نویسه‌های ویژه شل است. .SP .IP "" 0 \fB--old-line-format=\fIformat\fB\fR .IP "" 2 تنها خط‌های فایل نخست را قالب‌بندی می‌کند. .SP .IP "" 0 \fB--new-line-format=\fIformat\fB\fR .IP "" 2 تنها خط‌های فایل دوم را قالب‌بندی می‌کند. .SP .IP "" 0 \fB--unchanged-line-format=\fIformat\fB\fR .IP "" 2 خط‌های مشترک میان هر دو فایل را قالب‌بندی می‌کند. .SP .IP "" 0 \fB--line-format=\fIformat\fB\fR .IP "" 2 تمام خط‌ها را قالب‌بندی می‌کند؛ در عمل، هر سه گزینه بالا را به‌طور هم‌زمان تنظیم می‌نماید. .SP در یک قالب خط، نویسه‌های معمولی نمایانگر خودشان هستند؛ مشخصه‌های تبدیل با \fB%\fR آغاز می‌شوند و یکی از شکل‌های زیر را دارند. .SP .IP "" 0 \fB%l\fR .IP "" 2 نمایانگر محتوای خط است، بدون در نظر گرفتن نویسه انتهای خط (newline) پایانی آن (در صورت وجود). این قالب کامل یا ناقص بودن خط را نادیده می‌گیرد. .SP .IP "" 0 \fB%L\fR .IP "" 2 نمایانگر محتوای خط است، به همراه نویسه سطر تازه پایانی آن (در صورت وجود). اگر خط ناقص باشد، این قالب وضعیت ناقص بودن آن را حفظ می‌کند. .SP .IP "" 0 \fB%%\fR .IP "" 2 نمایانگر \fB%\fR است. .SP .IP "" 0 \fB%c\(aq\fIC\fB\(aq\fR .IP "" 2 که در آن \fIC\fR یک تک‌نویسه است، نمایانگر \fIC\fR است. \fIC\fR نباید بک‌اسلش یا آپوستروف باشد. برای مثال، \fB%c\(aq:\(aq\fR نمایانگر یک دونقطه (:) است. .SP .IP "" 0 \fB%c\(aq\\\fIO\fB\(aq\fR .IP "" 2 که در آن \fIO\fR رشته‌ای متشکل از ۱، ۲ یا ۳ رقم هشت‌هشتی است، نمایانگر نویسه‌ای با کد هشت‌هشتی \fIO\fR است. برای مثال، \fB%c\(aq\\0\(aq\fR نمایانگر نویسه تهی (null) است. .SP .IP "" 0 \fB\fIF\fBn\fR .IP "" 2 که در آن \fIF\fR یک مشخصه تبدیل \fBprintf\fR است، نمایانگر شماره خط قالب‌بندی‌شده با \fIF\fR است. برای مثال، \fB%.5dn\fR شماره خط را با استفاده از قالب \fB"%.5d"\fR در \fBprintf\fR چاپ می‌کند. برای اطلاعات بیشتر در مورد مشخصه‌های تبدیل printf، به گره `Line group formats\(aq در راهنمای CVS مراجعه کنید. .SP .SP قالب پیش‌فرض خط، \fB%l\fR به همراه یک نویسه سطر تازه است. .SP اگر ورودی حاوی نویسه‌های برگه (tab) باشد و تراز ماندن آن‌ها در خروجی مهم باشد، باید مطمئن شوید که \fB%l\fR یا \fB%L\fR در یک قالب خط دقیقاً پس از یک ایستگاه تب (tab stop) قرار گرفته باشد (مثلاً با قرار دادن یک نویسه برگه پیش از \fB%l\fR یا \fB%L\fR)، یا باید از گزینه \fB-t\fR یا \fB--expand-tabs\fR استفاده کنید. .SP در کنار هم، قالب‌های خط و گروه خط به شما اجازه تعیین قالب‌های متنوع و متعددی را می‌دهند. برای مثال، دستور زیر از قالبی مشابه با قالب پیش‌فرض \fBdiff\fR استفاده می‌کند. می‌توانید این دستور را برای کنترل دقیق بر خروجی \fBdiff\fR سفارشی‌سازی کنید. .SP .PD 0 .SP .IP "" 2 cvs diff \\ .IP "" 2 --old-line-format=\(aq< %l .IP "" 2 \(aq \\ .IP "" 2 --new-line-format=\(aq> %l .IP "" 2 \(aq \\ .IP "" 2 --old-group-format=\(aq%df%(f=l?:,%dl)d%dE .IP "" 2 %<\(aq \\ .IP "" 2 --new-group-format=\(aq%dea%dF%(F=L?:,%dL) .IP "" 2 %>\(aq \\ .IP "" 2 --changed-group-format=\(aq%df%(f=l?:,%dl)c%dF%(F=L?:,%dL) .IP "" 2 %<\(em .IP "" 2 %>\(aq \\ .IP "" 2 --unchanged-group-format=\(aq\(aq \\ .IP "" 2 myfile .PD .IP "" 0 .SP .SH "diff examples - نمونه‌های diff" .SP خط زیر یک Unidiff (گزینهٔ \fB-u\fR) میان بازبینی‌های 1.14 و 1.19 از \fBbackend.c\fR تولید می‌کند. به دلیل استفاده از گزینهٔ \fB-kk\fR، هیچ کلیدواژه‌ای جایگزین نمی‌شود، بنابراین تفاوت‌هایی که صرفاً به جایگزینی کلیدواژه‌ها وابسته‌اند نادیده گرفته می‌شوند. .SP .PD 0 .SP .IP "" 2 $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c .PD .IP "" 0 .SP فرض کنید شاخهٔ آزمایشی EXPR1 بر پایهٔ مجموعه‌ای از پرونده‌های برچسب‌خورده با RELEASE_1_0 ایجاد شده بود. برای دیدن اتفاقاتی که در آن شاخه رخ داده است، می‌توان از دستور زیر استفاده کرد: .SP .PD 0 .SP .IP "" 2 $ cvs diff -r RELEASE_1_0 -r EXPR1 .PD .IP "" 0 .SP دستوری مانند این می‌تواند برای تولید یک context diff میان دو انتشار (release) به کار رود: .SP .PD 0 .SP .IP "" 2 $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs .PD .IP "" 0 .SP اگر گزارش تغییرات (ChangeLog) را نگهداری می‌کنید، دستوری مانند دستور زیر درست پیش از ثبت (commit) تغییراتتان می‌تواند به شما در نوشتن مدخل ChangeLog کمک کند. تمام تغییرات محلی که هنوز ثبت نشده‌اند چاپ خواهند شد. .SP .PD 0 .SP .IP "" 2 $ cvs diff -u | less .PD .IP "" 0 .SP .SH "export - برون‌بری (export)" .SS "Export sources from CVS, similar to checkout - برون‌بری کدهای منبع از CVS، مشابه checkout" .IX "export (subcommand)" .SP .IP "\(bu" 2 خلاصه: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir] module\&... .IP "\(bu" 2 پیش‌نیاز: مخزن (repository). .IP "\(bu" 2 تغییرات: دایرکتوری کاری جاری (current directory). .SP این دستور گونه‌ای از \fBcheckout\fR است؛ هنگامی از آن استفاده کنید که رونوشتی از کد منبع پودمان را بدون دایرکتوری‌های مدیریتی \fBcvs\fR می‌خواهید. به عنوان نمونه، ممکن است از \fBexport\fR برای آماده‌سازی کد منبع جهت ارسال به خارج از مجموعه استفاده کنید. این دستور مستلزم آن است که یک تاریخ یا برچسب (با \fB-D\fR یا \fB-r\fR) مشخص کنید، به گونه‌ای که بتوانید بر بازتولید کد منبعی که برای دیگران ارسال می‌کنید حساب کنید (و از این رو، همواره دایرکتوری‌های خالی را هرس می‌کند). .SP اغلب ترجیح داده می‌شود که از \fB-kv\fR همراه با \fBcvs export\fR استفاده شود. این کار باعث می‌شود هر کلیدواژه‌ای به گونه‌ای بسط داده شود که یک import انجام‌شده در سایتی دیگر، اطلاعات بازبینی کلیدواژه را از دست ندهد. اما آگاه باشید که این روش برون‌بری شامل پرونده‌های دودویی (باینری) را به درستی مدیریت نمی‌کند. همچنین آگاه باشید که پس از استفاده از \fB-kv\fR، دیگر نمی‌توان از دستور \fBident\fR (که بخشی از مجموعهٔ \fBrcs\fR است\(emبه ident(1) مراجعه کنید) که به دنبال رشته‌های کلیدواژه می‌گردد، استفاده کرد. اگر می‌خواهید قادر به استفاده از \fBident\fR باشید، نباید از \fB-kv\fR استفاده کنید. .SP .SH "export options - گزینه‌های export" .SP این گزینه‌های استاندارد توسط \fBexport\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها، به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 استفاده از تازه‌ترین بازبینی که پس از \fIdate\fR نباشد. .SP .IP "" 0 \fB-f\fR .IP "" 2 اگر هیچ بازبینی منطبقی یافت نشد، تازه‌ترین بازبینی دریافت شود (به جای نادیده گرفتن پرونده). .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ اجرا تنها در دایرکتوری کاری جاری. .SP .IP "" 0 \fB-n\fR .IP "" 2 هیچ برنامهٔ دریافت (checkout) اجرا نشود. .SP .IP "" 0 \fB-R\fR .IP "" 2 برون‌بری دایرکتوری‌ها به صورت بازگشتی. این گزینه به‌طور پیش‌فرض فعال است. .SP .IP "" 0 \fB-r \fItag\fB\fR .IP "" 2 استفاده از بازبینی \fItag\fR. .SP افزون بر این، این گزینه‌ها (که میان \fBcheckout\fR و \fBexport\fR مشترک هستند) نیز پشتیبانی می‌شوند: .SP .IP "" 0 \fB-d \fIdir\fB\fR .IP "" 2 ایجاد دایرکتوری‌ای به نام \fIdir\fR برای پرونده‌های کاری، به جای استفاده از نام پودمان. برای جزئیات کامل پیرامون نحوهٔ مدیریت این پرچم توسط \fBcvs\fR، به `checkout options\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-k \fIsubst\fB\fR .IP "" 2 تنظیم حالت بسط کلیدواژه (به گره `Substitution modes\(aq در راهنمای CVS مراجعه کنید). .SP .IP "" 0 \fB-N\fR .IP "" 2 تنها همراه با \fB-d \fIdir\fB\fR مفید است. برای جزئیات کامل پیرامون نحوهٔ مدیریت این پرچم توسط \fBcvs\fR، به `checkout options\(aq در راهنمای CVS مراجعه کنید. .SP .SH "history - تاریخچه (history)" .SS "Show status of files and users - نمایش وضعیت پرونده‌ها و کاربران" .IX "history (subcommand)" .SP .IP "\(bu" 2 خلاصه: history [-report] [-flags] [-options args] [files\&...] .IP "\(bu" 2 پیش‌نیاز: پرونده \fB$CVSROOT/CVSROOT/history\fR .IP "\(bu" 2 تغییرات: هیچ‌چیز. .SP \fBcvs\fR می‌تواند یک پرونده تاریخچه نگهداری کند که هر بار استفاده از دستورهای \fBcheckout\fR، \fBcommit\fR، \fBrtag\fR، \fBupdate\fR و \fBrelease\fR را دنبال می‌کند. می‌توانید از \fBhistory\fR برای نمایش این اطلاعات در قالب‌های گوناگون استفاده کنید. .SP ثبت وقایع (Logging) باید با ایجاد پرونده \fB$CVSROOT/CVSROOT/history\fR فعال شود. .SP \fB\fBhistory\fB گزینه‌های \fB-f\fB، \fB-l\fB، \fB-n\fB و \fB-p\fB را به گونه‌ای به کار می‌برد که با استفاده معمول درون \fBcvs\fB تداخل دارد (گره `Common options\(aq را در راهنمای CVS ببینید).\fR .SP .SH "history options - گزینه‌های history" .SP چندین گزینه (که در بالا به صورت \fB-report\fR نشان داده شده‌اند) تعیین می‌کنند که چه نوع گزارشی تولید شود: .SP .IP "" 0 \fB-c\fR .IP "" 2 گزارش هر بار استفاده از commit (یعنی هر بار که مخزن تغییر یافته است). .SP .IP "" 0 \fB-e\fR .IP "" 2 همه‌چیز (تمام انواع رکورد). معادل با مشخص کردن \fB-x\fR همراه با تمام انواع رکورد است. البته، \fB-e\fR شامل انواع رکوردی که در نگارش‌های آینده \fBcvs\fR افزوده شوند نیز خواهد شد؛ اگر اسکریپتی می‌نویسید که تنها می‌تواند انواع خاصی از رکوردها را پردازش کند، مایل خواهید بود \fB-x\fR را مشخص کنید. .SP .IP "" 0 \fB-m \fImodule\fB\fR .IP "" 2 گزارش درباره یک پودمان خاص. (می‌توانید به طور معنادار از \fB-m\fR بیش از یک بار در خط فرمان استفاده کنید.) .SP .IP "" 0 \fB-o\fR .IP "" 2 گزارش درباره پودمان‌های دریافت‌شده (checked-out). این نوع گزارش پیش‌فرض است. .SP .IP "" 0 \fB-T\fR .IP "" 2 گزارش درباره تمام برچسب‌ها. .SP .IP "" 0 \fB-x \fItype\fB\fR .IP "" 2 استخراج مجموعه‌ای خاص از انواع رکورد \fItype\fR از تاریخچه \fBcvs\fR. انواع با حروف تک‌حرفی نشان داده می‌شوند که می‌توانید آن‌ها را در ترکیب با یکدیگر مشخص کنید. .SP برخی دستورها یک نوع رکورد منفرد دارند: .SP .IP "" 2 \fBF\fR .IP "" 4 release .IP "" 2 \fBO\fR .IP "" 4 checkout .IP "" 2 \fBE\fR .IP "" 4 export .IP "" 2 \fBT\fR .IP "" 4 rtag .SP یکی از پنج نوع رکورد ممکن است از یک update حاصل شود: .SP .IP "" 2 \fBC\fR .IP "" 4 یک ادغام لازم بود اما تداخل‌هایی شناسایی شد (نیازمند ادغام دستی). .IP "" 2 \fBG\fR .IP "" 4 یک ادغام لازم بود و با موفقیت انجام شد. .IP "" 2 \fBU\fR .IP "" 4 یک پرونده کاری از مخزن رونویسی شد. .IP "" 2 \fBP\fR .IP "" 4 یک پرونده کاری برای تطابق با مخزن وصله شد. .IP "" 2 \fBW\fR .IP "" 4 رونوشت کاری یک پرونده هنگام به‌روزرسانی حذف شد (زیرا از مخزن حذف شده بود). .SP یکی از سه نوع رکورد از commit حاصل می‌شود: .SP .IP "" 2 \fBA\fR .IP "" 4 یک پرونده برای نخستین بار افزوده شد. .IP "" 2 \fBM\fR .IP "" 4 یک پرونده تغییر یافت. .IP "" 2 \fBR\fR .IP "" 4 یک پرونده حذف شد. .SP گزینه‌هایی که به صورت \fB-flags\fR نشان داده شده‌اند گزارش را بدون نیاز به آرگومان‌های گزینه محدود یا گسترش می‌دهند: .SP .IP "" 0 \fB-a\fR .IP "" 2 نمایش داده‌ها برای تمام کاربران (حالت پیش‌فرض نمایش داده‌ها تنها برای کاربری است که \fBhistory\fR را اجرا می‌کند). .SP .IP "" 0 \fB-l\fR .IP "" 2 تنها نمایش آخرین تغییر. .SP .IP "" 0 \fB-w\fR .IP "" 2 تنها نمایش رکوردهای مربوط به تغییراتی که از همان دایرکتوری کاری که \fBhistory\fR در حال اجرا است انجام شده است. .SP گزینه‌هایی که به صورت \fB-options \fIargs\fB\fR نشان داده شده‌اند گزارش را بر اساس یک آرگومان محدود می‌کنند: .SP .IP "" 0 \fB-b \fIstr\fB\fR .IP "" 2 نمایش داده‌ها تا پیشینه‌ای حاوی رشته \fIstr\fR در نام پودمان، نام پرونده، یا مسیر مخزن. .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 نمایش داده‌ها از تاریخ \fIdate\fR به بعد. این رفتار اندکی با کاربرد معمول \fB-D \fIdate\fB\fR متفاوت است، که تازه‌ترین نگارش قدیمی‌تر از \fIdate\fR را انتخاب می‌کند. .SP .IP "" 0 \fB-f \fIfile\fB\fR .IP "" 2 نمایش داده‌ها برای یک پرونده خاص (می‌توانید چندین گزینه \fB-f\fR را در همان خط فرمان مشخص کنید). این معادل با مشخص کردن پرونده در خط فرمان است. .SP .IP "" 0 \fB-n \fImodule\fB\fR .IP "" 2 نمایش داده‌ها برای یک پودمان خاص (می‌توانید چندین گزینه \fB-n\fR را در همان خط فرمان مشخص کنید). .SP .IP "" 0 \fB-p \fIrepository\fB\fR .IP "" 2 نمایش داده‌ها برای یک مخزن منبع خاص (می‌توانید چندین گزینه \fB-p\fR را در همان خط فرمان مشخص کنید). .SP .IP "" 0 \fB-r \fIrev\fB\fR .IP "" 2 نمایش رکوردهایی که به نگارش‌های پس از نگارش یا برچسبِ با نام \fIrev\fR در هر یک از پرونده‌های \fBrcs\fR اشاره دارند. هر پرونده \fBrcs\fR برای یافتن آن نگارش یا برچسب جستجو می‌شود. .SP .IP "" 0 \fB-t \fItag\fB\fR .IP "" 2 نمایش رکوردها از زمان آخرین باری که برچسب \fItag\fR به پرونده تاریخچه اضافه شد. این پرچم با \fB-r\fR در بالا متفاوت است زیرا تنها پرونده تاریخچه را می‌خواند و نه پرونده‌های \fBrcs\fR را، و بسیار سریع‌تر است. .SP .IP "" 0 \fB-u \fIname\fB\fR .IP "" 2 نمایش رکوردهای مربوط به کاربر \fIname\fR. .SP .IP "" 0 \fB-z \fItimezone\fB\fR .IP "" 2 نمایش زمان‌ها در رکوردهای انتخاب‌شده با استفاده از منطقهٔ زمانی مشخص‌شده به جای UTC. .SP .SH "import - وارد کردن (import)" .SS "Import sources into CVS, using vendor branches - وارد کردن کدهای منبع به CVS با استفاده از شاخه‌های تأمین‌کننده (vendor branches)" .IX "import (subcommand)" .SP .IP "\(bu" 2 خلاصه: import [-options] repository vendortag releasetag\&... .IP "\(bu" 2 پیش‌نیاز: مخزن (Repository)، دایرکتوری توزیع منبع (source distribution directory). .IP "\(bu" 2 تغییرات: مخزن (repository). .SP از \fBimport\fR برای گنجاندن کل یک بستهٔ توزیع کد منبع از منبعی خارجی (مانند یک تأمین‌کنندهٔ منبع) درون دایرکتوری مخزن مبدأ خود استفاده کنید. می‌توانید از این دستور هم برای ایجاد اولیهٔ یک مخزن و هم برای به‌روزرسانی کلی پودمان از منبع خارجی استفاده کنید. برای توضیحات بیشتر در این مورد، به `Tracking sources\(aq در راهنمای CVS مراجعه کنید. .SP آرگومان \fIrepository\fR نام یک دایرکتوری (یا مسیری به یک دایرکتوری) را در زیر دایرکتوری ریشهٔ \fBcvs\fR برای مخازن مشخص می‌کند؛ اگر دایرکتوری وجود نداشته باشد، دستور import آن را می‌سازد. .SP هنگامی که از import برای به‌روزرسانی کدهای منبعی که در مخزن شما تغییر یافته‌اند (از زمان یک import پیشین) استفاده می‌کنید، شما را از وجود پرونده‌های دارای تداخل در دو شاخهٔ توسعه آگاه خواهد کرد؛ برای رفع تفاوت‌ها، همان‌گونه که import راهنمایی می‌کند، از دستور \fBcheckout -j\fR استفاده نمایید. .SP اگر \fBcvs\fR تشخیص دهد که پرونده‌ای باید نادیده گرفته شود (به گره `cvsignore\(aq در راهنمای CVS مراجعه کنید)، آن را وارد نمی‌کند و عبارت \fBI \fR را به همراه نام پرونده چاپ می‌کند (برای شرح کامل خروجی به گره `import output\(aq در راهنمای CVS مراجعه کنید). .SP اگر پروندهٔ \fB$CVSROOT/CVSROOT/cvswrappers\fR وجود داشته باشد، هر پرونده‌ای که نام آن با مشخصات مندرج در آن پرونده مطابقت کند، به عنوان بسته در نظر گرفته می‌شود و پالایش لازم پیش از وارد شدن، بر روی پرونده/دایرکتوری اعمال می‌گردد. به `Wrappers\(aq در راهنمای CVS مراجعه کنید. .SP منبع خارجی در یک شاخهٔ سطح اول ذخیره می‌شود که مقدار پیش‌فرض آن 1.1.1 است. به‌روزرسانی‌ها برگ‌های این شاخه هستند؛ برای نمونه، پرونده‌های برگرفته از نخستین مجموعهٔ واردشده از منبع، بازبینی 1.1.1.1 خواهند بود، سپس پرونده‌های حاصل از نخستین به‌روزرسانی واردشده بازبینی 1.1.1.2 خواهند بود و به همین ترتیب ادامه می‌یابد. .SP دست‌کم سه آرگومان مورد نیاز است. \fIrepository\fR برای شناسایی مجموعهٔ منبع لازم است. \fIvendortag\fR برچسبی برای کل شاخه است (برای نمونه، برای 1.1.1). همچنین باید دست‌کم یک \fIreleasetag\fR مشخص کنید تا پرونده‌های موجود در برگ‌هایی که با هر بار اجرای \fBimport\fR ایجاد می‌شوند، به‌طور یکتا شناسایی شوند. \fIreleasetag\fR باید جدید باشد، قبلاً در پروندهٔ مخزن وجود نداشته باشد و نسخهٔ واردشده را به‌طور یکتا مشخص نماید. .SP توجه داشته باشید که \fBimport\fR دایرکتوری‌ای را که در آن اجرا می‌شود تغییر \fIنمی‌دهد\fR. به‌ویژه، آن دایرکتوری را به عنوان دایرکتوری کاری \fBcvs\fR برپا نمی‌سازد؛ اگر می‌خواهید با کدهای منبع کار کنید، ابتدا آن‌ها را وارد (import) کرده و سپس در دایرکتوری دیگری دریافتشان (checkout) نمایید (به گره `Getting the source\(aq در راهنمای CVS مراجعه کنید). .SP .SH "import options - گزینه‌های import" .SP این گزینهٔ استاندارد توسط \fBimport\fR پشتیبانی می‌شود (برای توضیحات کامل به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-m \fImessage\fB\fR .IP "" 2 استفاده از \fImessage\fR به عنوان اطلاعات ثبت وقایع (log)، به جای فراخوانی یک ویرایشگر. .SP گزینه‌های ویژهٔ اضافی زیر نیز وجود دارند. .SP .IP "" 0 \fB-b \fIbranch\fB\fR .IP "" 2 به `Multiple vendor branches\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-d\fR .IP "" 2 استفاده از زمان ویرایش هر پرونده به عنوان زمان وارد کردن (import) به جای زمان فعلی. .SP .IP "" 0 \fB-k \fIsubst\fB\fR .IP "" 2 نشان‌دهندهٔ حالت بازگشایی کلیدواژهٔ مورد نظر است. این تنظیم بر روی تمام پرونده‌های ایجادشده در طول import اعمال خواهد شد، اما بر روی پرونده‌هایی که از پیش در مخزن موجود بوده‌اند اعمال نمی‌شود. برای مشاهدهٔ فهرستی از تنظیمات معتبر \fB-k\fR، به `Substitution modes\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-I \fIname\fB\fR .IP "" 2 مشخص کردن نام پرونده‌هایی که باید هنگام import نادیده گرفته شوند. می‌توانید مکرراً از این گزینه استفاده نمایید. برای جلوگیری از نادیده گرفتن هرگونه پرونده (حتی آن‌هایی که به‌طور پیش‌فرض نادیده گرفته می‌شوند)، عبارت \`-I !\(aq را مشخص کنید. .SP \fIname\fR می‌تواند یک الگوی نام پرونده از همان نوعی باشد که می‌توانید در پروندهٔ \fB.cvsignore\fR مشخص کنید. به `cvsignore\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-W \fIspec\fB\fR .IP "" 2 مشخص کردن نام پرونده‌هایی که باید هنگام import پالایش (فیلتر) شوند. می‌توانید مکرراً از این گزینه استفاده نمایید. .SP \fIspec\fR می‌تواند یک الگوی نام پرونده از همان نوعی باشد که می‌توانید در پروندهٔ \fB.cvswrappers\fR مشخص کنید. به گره `Wrappers\(aq در راهنمای CVS مراجعه کنید. .SP .SH "import output - خروجی import" .SP \fBimport\fR با چاپ یک خط به ازای هر پرونده، که پیش از آن یک نویسه نشان‌دهنده وضعیت پرونده قرار دارد، شما را از پیشرفت کار آگاه می‌کند: .SP .IP "" 0 \fBU \fIfile\fB\fR .IP "" 2 پرونده از پیش در مخزن موجود است و به صورت محلی ویرایش نشده است؛ یک بازبینی جدید ایجاد شده است (در صورت نیاز). .SP .IP "" 0 \fBN \fIfile\fB\fR .IP "" 2 پرونده یک پروندهٔ جدید است که به مخزن افزوده شده است. .SP .IP "" 0 \fBC \fIfile\fB\fR .IP "" 2 پرونده از پیش در مخزن وجود دارد اما به صورت محلی ویرایش شده است؛ باید تغییرات را ادغام کنید. .SP .IP "" 0 \fBI \fIfile\fB\fR .IP "" 2 پرونده نادیده گرفته می‌شود (به گره `cvsignore\(aq در راهنمای CVS مراجعه کنید). .SP .IX "Symbolic link, importing" .IX "Link, symbolic, importing" .IP "" 0 \fBL \fIfile\fB\fR .IP "" 2 این پرونده یک پیوند نمادین (symbolic link) است؛ \fBcvs import\fR پیوندهای نمادین را نادیده می‌گیرد. افراد به‌طور دوره‌ای پیشنهاد می‌کنند که این رفتار باید تغییر کند، اما اگر اجماعی دربارهٔ اینکه به چه چیزی باید تغییر یابد وجود داشته باشد، به نظر نمی‌رسد آشکار باشد. (گزینه‌های گوناگونی در پروندهٔ \fBmodules\fR می‌توانند برای بازآفرینی پیوندهای نمادین هنگام checkout، update و غیره استفاده شوند؛ به گره `modules\(aq در راهنمای CVS مراجعه کنید.) .SP .SH "import examples - مثال‌های import" .SP به `Tracking sources\(aq در راهنمای CVS، و `From files\(aq در راهنمای CVS مراجعه کنید. .SP .SH "log - گزارش پیشینه (log)" .SS "Print out log information for files - چاپ اطلاعات گزارش برای پرونده‌ها" .IX "log (subcommand)" .SP .IP "\(bu" 2 خلاصه: log [options] [files\&...] .IP "\(bu" 2 نیازمندی‌ها: مخزن (repository)، دایرکتوری کاری (working directory). .IP "\(bu" 2 تغییرات: هیچ‌چیز. .SP نمایش اطلاعات گزارش (log) برای پرونده‌ها. \fBlog\fR در گذشته ابزار \fBrcs\fR به نام \fBrlog\fR را فراخوانی می‌کرد. هرچند این موضوع دیگر در کدهای منبع فعلی برقرار نیست، اما این پیشینه، قالب خروجی و گزینه‌ها را تعیین می‌کند که کاملاً به سبک سایر دستورهای \fBcvs\fR نیستند. .SP .IX "Timezone, in output" .IX "Zone, time, in output" خروجی شامل مکان پروندهٔ \fBrcs\fR، بازبینی \fIhead\fR (تازه‌ترین بازبینی روی شاخهٔ اصلی یا trunk)، تمام نام‌های نمادین (برچسب‌ها) و برخی موارد دیگر است. برای هر بازبینی، شمارهٔ بازبینی، پدیدآورنده، تعداد خطوط اضافه‌شده/حذف‌شده و پیام ثبت وقایع (log message) چاپ می‌شوند. تمام زمان‌ها در زمان هماهنگ جهانی (UTC) نمایش داده می‌شوند. (بخش‌های دیگر \fBcvs\fR زمان‌ها را در منطقهٔ زمانی محلی چاپ می‌کنند). .SP \fBدستور \fBlog\fB از \fB-R\fB به روشی استفاده می‌کند که با کاربرد معمول آن در \fBcvs\fB تداخل دارد (به گره `Common options\(aq در راهنمای CVS مراجعه کنید).\fR .SP .SH "log options - گزینه‌های log" .SP به‌طور پیش‌فرض، \fBlog\fR تمام اطلاعات موجود را چاپ می‌کند. سایر گزینه‌ها خروجی را محدود می‌کنند. توجه داشته باشید که گزینه‌های انتخاب بازبینی (\fB-b\fR، \fB-d\fR، \fB-r\fR، \fB-s\fR و \fB-w\fR) در صورت استفاده همراه با گزینه‌هایی که خروجی را تنها به فیلدهای سرآیند \fBlog\fR محدود می‌کنند (\fB-h\fR، \fB-R\fR و \fB-t\fR)، هیچ تأثیری ندارند مگر اینکه گزینهٔ \fB-S\fR نیز مشخص شده باشد، به جز اینکه احتمالاً موجب جستجوی پرونده‌ها در دایرکتوری‌های Attic می‌شوند. .SP .IP "" 0 \fB-b\fR .IP "" 2 چاپ اطلاعات دربارهٔ بازبینی‌های روی شاخهٔ پیش‌فرض، که معمولاً بالاترین شاخه روی trunk است. .SP .IP "" 0 \fB-d \fIdates\fB\fR .IP "" 2 چاپ اطلاعات دربارهٔ بازبینی‌هایی با تاریخ/زمان ثبت (checkin) در محدودهٔ مشخص‌شده توسط فهرست تاریخ‌های جداشده با نقطه-ویرگول (semicolon). قالب‌های تاریخ پذیرفته‌شده همان قالب‌های پذیرفته‌شده توسط گزینهٔ \fB-D\fR در بسیاری از دیگر دستورهای \fBcvs\fR هستند (به گره `Common options\(aq در راهنمای CVS مراجعه کنید). تاریخ‌ها می‌توانند به صورت بازه‌ها به شکل زیر ترکیب شوند: .SP .IP "" 2 \fB\fId1\fB<\fId2\fB\fR .IP "" 4 .IP "" 2 \fB\fId2\fB>\fId1\fB\fR .IP "" 4 انتخاب بازبینی‌هایی که بین \fId1\fR و \fId2\fR ثبت شده‌اند. .SP .IP "" 2 \fB<\fId\fB\fR .IP "" 4 .IP "" 2 \fB\fId\fB>\fR .IP "" 4 انتخاب تمام بازبینی‌های با تاریخ \fId\fR یا پیش از آن. .SP .IP "" 2 \fB\fId\fB<\fR .IP "" 4 .IP "" 2 \fB>\fId\fB\fR .IP "" 4 انتخاب تمام بازبینی‌های با تاریخ \fId\fR یا پس از آن. .SP .IP "" 2 \fB\fId\fB\fR .IP "" 4 انتخاب تنها تازه‌ترین بازبینی با تاریخ \fId\fR یا پیش از آن. .SP نویسه‌های \fB>\fR یا \fB<\fR ممکن است با یک \fB=\fR دنبال شوند تا به جای بازهٔ باز (exclusive)، یک بازهٔ بسته یا فراگیر (inclusive) را نشان دهند. .SP توجه داشته باشید که جداکننده یک نقطه-ویرگول (;) است. .SP .IP "" 0 \fB-h\fR .IP "" 2 تنها چاپ نام پروندهٔ \fBrcs\fR، نام پرونده در دایرکتوری کاری، head، شاخهٔ پیش‌فرض، فهرست دسترسی (access list)، قفل‌ها، نام‌های نمادین، و پسوند. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ تنها در دایرکتوری کاری جاری اجرا شود. (پیش‌فرض اجرای بازگشتی است). .SP .IP "" 0 \fB-N\fR .IP "" 2 فهرست برچسب‌ها برای این پرونده را چاپ نکن. این گزینه می‌تواند زمانی که سایت شما از برچسب‌های فراوان استفاده می‌کند بسیار مفید باشد؛ به این ترتیب به جای پیمایش با دستور more در بیش از ۳ صفحه اطلاعات برچسب، اطلاعات گزارش بدون هیچ برچسبی ارائه می‌شود. .SP .IP "" 0 \fB-n\fR .IP "" 2 چاپ فهرست برچسب‌ها برای این پرونده. این گزینه می‌تواند زمانی بسیار مفید باشد که پروندهٔ \fB.cvsrc\fR شما دارای مدخل \fBlog -N\fR باشد تا راهی برای دریافت فهرست کاملی از تمام برچسب‌ها فراهم کند. .SP .IP "" 0 \fB-R\fR .IP "" 2 تنها چاپ نام پروندهٔ \fBrcs\fR. .SP .IP "" 0 \fB-r\fIrevisions\fB\fR .IP "" 2 چاپ اطلاعات دربارهٔ بازبینی‌های ارائه‌شده در فهرست جداشده با کاما \fIrevisions\fR از بازبینی‌ها و بازه‌ها. جدول زیر قالب‌های موجود بازه را توضیح می‌دهد: .SP .IP "" 2 \fB\fIrev1\fB:\fIrev2\fB\fR .IP "" 4 بازبینی‌های \fIrev1\fR تا \fIrev2\fR (که باید روی یک شاخهٔ یکسان باشند). .SP .IP "" 2 \fB\fIrev1\fB::\fIrev2\fB\fR .IP "" 4 همان، اما با مستثنی کردن \fIrev1\fR. .SP .IP "" 2 \fB:\fIrev\fB\fR .IP "" 4 .IP "" 2 \fB::\fIrev\fB\fR .IP "" 4 بازبینی‌ها از ابتدای شاخه تا و شامل \fIrev\fR. .SP .IP "" 2 \fB\fIrev\fB:\fR .IP "" 4 بازبینی‌ها با شروع از \fIrev\fR تا انتهای شاخه‌ای که حاوی \fIrev\fR است. .SP .IP "" 2 \fB\fIrev\fB::\fR .IP "" 4 بازبینی‌ها با شروع دقیقاً پس از \fIrev\fR تا انتهای شاخه‌ای که حاوی \fIrev\fR است. .SP .IP "" 2 \fB\fIbranch\fB\fR .IP "" 4 آرگومانی که یک شاخه باشد، به معنی تمام بازبینی‌های روی آن شاخه است. .SP .IP "" 2 \fB\fIbranch1\fB:\fIbranch2\fB\fR .IP "" 4 .IP "" 2 \fB\fIbranch1\fB::\fIbranch2\fB\fR .IP "" 4 محدوده‌ای از شاخه‌ها به معنی تمام بازبینی‌های روی شاخه‌های درون آن محدوده است. .SP .IP "" 2 \fB\fIbranch\fB.\fR .IP "" 4 آخرین بازبینی در \fIbranch\fR. .SP گزینهٔ \fB-r\fR به‌تنهایی و بدون بازبینی‌ها، به معنی آخرین بازبینی روی شاخهٔ پیش‌فرض (معمولاً تنهٔ اصلی یا trunk) است. میان گزینهٔ \fB-r\fR و آرگومان آن نباید فاصله‌ای وجود داشته باشد. .SP .IP "" 0 \fB-S\fR .IP "" 2 در صورت عدم انتخاب هیچ بازبینی‌ای، از چاپ سرآیند صرف‌نظر می‌کند. .SP .IP "" 0 \fB-s \fIstates\fB\fR .IP "" 2 چاپ اطلاعات دربارهٔ بازبینی‌هایی که مشخصهٔ وضعیت (state) آن‌ها با یکی از وضعیت‌های ارائه‌شده در فهرست جداشده با کامای \fIstates\fR مطابقت دارد. وضعیت‌های منفرد می‌توانند هر رشتهٔ متنی باشند، هرچند \fBcvs\fR معمولاً تنها از دو وضعیت \fBExp\fR و \fBdead\fR استفاده می‌کند. برای اطلاعات بیشتر به `admin options\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-t\fR .IP "" 2 همانند \fB-h\fR چاپ می‌کند، به همراه متن توصیفی. .SP .IP "" 0 \fB-w\fIlogins\fB\fR .IP "" 2 چاپ اطلاعات دربارهٔ بازبینی‌های ثبت‌شده توسط کاربرانی که نام کاربری آن‌ها در فهرست جداشده با کامای \fIlogins\fR آمده است. اگر \fIlogins\fR حذف شود، نام کاربری کاربر جاری فرض می‌شود. میان گزینهٔ \fB-w\fR و آرگومان آن نباید فاصله‌ای وجود داشته باشد. .SP دستور \fBlog\fR اشتراک بازبینی‌های انتخاب‌شده با گزینه‌های \fB-d\fR، \fB-s\fR و \fB-w\fR را در تقاطع با اجتماع بازبینی‌های انتخاب‌شده توسط \fB-b\fR و \fB-r\fR چاپ می‌کند. .SP .SH "log examples - مثال‌های log" .SP مثال‌ها و نمونه‌های ارائه‌شده از سوی کاربران با کمال میل پذیرفته می‌شوند. .SP .SH "rdiff - تفاوت‌های انتشار (rdiff)" .SS "\(aqpatch\(aq format diffs between releases - تفاوت‌های قالب \(aqpatch\(aq میان انتشارها" .IX "rdiff (subcommand)" .SP .IP "\(bu" 2 خلاصه: rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules\&... .IP "\(bu" 2 پیش‌نیاز: مخزن (repository). .IP "\(bu" 2 تغییرات: هیچ‌چیز. .IP "\(bu" 2 مترادف: patch .SP یک پروندهٔ وصله در قالب لری وال (Larry Wall format patch(1)) میان دو نسخهٔ انتشار می‌سازد که می‌تواند مستقیماً به برنامهٔ \fBpatch\fR داده شود تا یک انتشار قدیمی را با انتشار جدید به‌روزرسانی کند. (این یکی از معدود دستورهای \fBcvs\fR است که مستقیماً از روی مخزن عمل می‌کند و نیازی به دریافت نسخهٔ قبلی (checkout) ندارد.) خروجی diff به دستگاه خروجی استاندارد فرستاده می‌شود. .SP می‌توانید (با استفاده از گزینه‌های استاندارد \fB-r\fR و \fB-D\fR) هر ترکیبی از یک یا دو بازبینی یا تاریخ را مشخص کنید. اگر تنها یک بازبینی یا تاریخ مشخص شود، پروندهٔ وصله تفاوت‌های میان آن بازبینی یا تاریخ و بازبینی‌های رأس کنونی (head) در پروندهٔ \fBrcs\fR را بازتاب می‌دهد. .SP توجه داشته باشید اگر انتشار نرم‌افزاریِ تحت تأثیر در بیش از یک دایرکتوری قرار داشته باشد، ممکن است هنگام اعمال وصله روی کدهای منبع قدیمی، مشخص کردن گزینهٔ \fB-p\fR برای دستور \fBpatch\fR لازم باشد تا \fBpatch\fR بتواند پرونده‌های واقع در دایرکتوری‌های دیگر را پیدا کند. .SP .SH "rdiff options - گزینه‌های rdiff" .SP این گزینه‌های استاندارد توسط \fBrdiff\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-D \fIdate\fB\fR .IP "" 2 استفاده از تازه‌ترین بازبینی که پس از \fIdate\fR نباشد. .SP .IP "" 0 \fB-f\fR .IP "" 2 اگر هیچ بازبینیِ منطبقی یافت نشد، تازه‌ترین بازبینی را دریافت می‌کند (به‌جای نادیده گرفتن پرونده). .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش کلیدواژه‌ها بر اساس \fIkflag\fR. به گره `Keyword substitution\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ به زیردایرکتوری‌ها وارد نشو. .SP .IP "" 0 \fB-R\fR .IP "" 2 بررسی دایرکتوری‌ها به‌صورت بازگشتی. این گزینه به‌طور پیش‌فرض فعال است. .SP .IP "" 0 \fB-r \fItag\fB\fR .IP "" 2 استفاده از بازبینی \fItag\fR. .SP علاوه بر موارد بالا، این گزینه‌ها نیز در دسترس هستند: .SP .IP "" 0 \fB-c\fR .IP "" 2 استفاده از قالب context diff. این قالب پیش‌فرض است. .SP .IP "" 0 \fB-s\fR .IP "" 2 ایجاد یک گزارش خلاصهٔ تغییرات به‌جای وصله (patch). این خلاصه شامل اطلاعاتی دربارهٔ پرونده‌هایی است که میان نسخه‌های انتشار تغییر یافته یا افزوده شده‌اند. گزارش به دستگاه خروجی استاندارد فرستاده می‌شود. این گزینه برای پی بردن به این‌که به عنوان مثال کدام پرونده‌ها میان دو تاریخ یا بازبینی تغییر کرده‌اند، مفید است. .SP .IP "" 0 \fB-t\fR .IP "" 2 یک diff از دو بازبینی بالاتر به دستگاه خروجی استاندارد فرستاده می‌شود. این گزینه بیش از همه برای مشاهدهٔ این‌که آخرین تغییر روی یک پرونده چه بوده است، کاربرد دارد. .SP .IP "" 0 \fB-u\fR .IP "" 2 استفاده از قالب unidiff برای تفاوت‌های متنی (context diffs). به یاد داشته باشید که نسخه‌های قدیمی برنامهٔ \fBpatch\fR نمی‌توانند با قالب unidiff کار کنند، بنابراین اگر قصد ارسال این وصله به شبکه را دارید احتمالاً نباید از \fB-u\fR استفاده کنید. .SP .IP "" 0 \fB-V \fIvn\fB\fR .IP "" 2 بسط کلیدواژه‌ها بر اساس قواعد جاری در نگارش \fIvn\fR از \fBrcs\fR (قالب بسط در نسخهٔ 5 از \fBrcs\fR تغییر کرد). توجه داشته باشید که این گزینه دیگر پذیرفته نمی‌شود. \fBcvs\fR همواره کلیدواژه‌ها را همان‌گونه که نسخهٔ 5 از \fBrcs\fR انجام می‌دهد، بسط خواهد داد. .SP .SH "rdiff examples - نمونه‌های rdiff" .SP فرض کنید نامه‌ای از \fRfoo@example.net\fR دریافت کرده‌اید که درخواست به‌روزرسانی از انتشار 1.2 به 1.4 کامپایلر tc را دارد. شما چنین وصله‌هایی در دست ندارید، اما با \fBcvs\fR این موضوع را می‌توان به‌سادگی با دستوری مانند این برطرف کرد: .SP .PD 0 .SP .IP "" 2 $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \\ .IP "" 2 > Mail -s \(aqThe patches you asked for\(aq foo@example.net .PD .IP "" 0 .SP فرض کنید انتشار 1.3 را انجام داده‌اید، و شاخه‌ای به نام \fBR_1_3fix\fR برای رفع اشکال‌ها منشعب کرده‌اید. \fBR_1_3_1\fR مربوط به انتشار 1.3.1 است که مدتی پیش انجام شده بود. اکنون می‌خواهید ببینید چه مقدار توسعه روی این شاخه انجام شده است. می‌توان از این دستور استفاده کرد: .SP .PD 0 .SP .IP "" 2 $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name .IP "" 2 cvs rdiff: Diffing module-name .IP "" 2 File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6 .IP "" 2 File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4 .IP "" 2 File bar.h,v changed from revision 1.29.2.1 to 1.2 .PD .IP "" 0 .SP .SH "release - آزادسازی (release)" .SS "Indicate that a Module is no longer in use - اعلان اینکه یک پودمان دیگر استفاده نمی‌شود" .IX "release (subcommand)" .SP .IP "\(bu" 2 خلاصه: release [-d] directories\&... .IP "\(bu" 2 پیش‌نیاز: دایرکتوری کاری (working directory). .IP "\(bu" 2 تغییرات: دایرکتوری کاری، گزارش تاریخچه (working directory, history log). .SP این دستور برای لغو ایمن اثر \fBcvs checkout\fR در نظر گرفته شده است. از آن‌جا که \fBcvs\fR پرونده‌ها را قفل نمی‌کند، استفاده از این دستور الزام قطعی ندارد. در صورت تمایل همیشه می‌توانید به‌سادگی دایرکتوری کاری خود را حذف کنید؛ اما در این صورت خطر از دست دادن تغییراتی که ممکن است فراموش کرده باشید وجود دارد، و هیچ اثری هم در پروندهٔ تاریخچهٔ \fBcvs\fR (به گره `history file\(aq در راهنمای CVS مراجعه کنید) مبنی بر اینکه دریافت (checkout) خود را رها کرده‌اید بر جای نمی‌گذارید. .SP برای جلوگیری از این مشکلات از \fBcvs release\fR استفاده کنید. این دستور بررسی می‌کند که هیچ تغییر ثبت‌نشده‌ای (uncommitted) وجود نداشته باشد؛ اینکه آن را دقیقاً از یک سطح بالاتر از دایرکتوری کاری \fBcvs\fR اجرا می‌کنید؛ و اینکه مخزن ثبت‌شده برای پرونده‌های شما همان مخزن تعریف‌شده در پایگاه‌دادهٔ پودمان باشد. .SP اگر همهٔ این شرایط برقرار باشد، \fBcvs release\fR رکوردی از اجرای خود (که گواهی بر رها کردن عمدی دریافت توسط شماست) در گزارش تاریخچهٔ \fBcvs\fR بر جای می‌گذارد. .SP .SH "release options - گزینه‌های release" .SP دستور \fBrelease\fR از یک گزینهٔ دستوری پشتیبانی می‌کند: .SP .IP "" 0 \fB-d\fR .IP "" 2 در صورت موفقیت‌آمیز بودن آزادسازی، رونوشت کاری پرونده را حذف می‌کند. اگر این پرچم داده نشود، پرونده‌های شما در دایرکتوری کاری باقی خواهند ماند. .SP \fBهشدار: دستور \fBrelease\fB تمام دایرکتوری‌ها و پرونده‌ها را به‌طور بازگشتی حذف می‌کند. این کار اثر جانبی بسیار شدیدی دارد؛ به این صورت که هر دایرکتوری ایجادشده درون کدهای منبع دریافت‌شده که به مخزن افزوده نشده باشد (با استفاده از دستور \fBadd\fB؛ به گره `Adding files\(aq در راهنمای CVS مراجعه کنید)، بی‌صدا حذف خواهد شد\(emحتی اگر خالی نباشد!\fR .SP .SH "release output - خروجی release" .SP پیش از آنکه \fBrelease\fR منابع شما را آزاد کند، برای هر پرونده‌ای که به‌روز نباشد یک پیام یک‌خطی چاپ می‌کند. .SP .IP "" 0 \fBU \fIfile\fB\fR .IP "" 2 .IP "" 0 \fBP \fIfile\fB\fR .IP "" 2 بازبینی جدیدتری از این پرونده در مخزن وجود دارد، و شما رونوشت محلی پرونده را تغییر نداده‌اید (\fBU\fR و \fBP\fR معنای یکسانی دارند). .SP .IP "" 0 \fBA \fIfile\fB\fR .IP "" 2 پرونده به رونوشت خصوصی شما از کدهای منبع اضافه شده است، اما هنوز در مخزن ثبت (commit) نشده است. اگر رونوشت خود از منابع را حذف کنید، این پرونده از دست خواهد رفت. .SP .IP "" 0 \fBR \fIfile\fB\fR .IP "" 2 پرونده از رونوشت خصوصی شما از کدهای منبع حذف شده است، اما هنوز از مخزن حذف نشده، زیرا حذف را هنوز ثبت نکرده‌اید. به `commit\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fBM \fIfile\fB\fR .IP "" 2 پرونده در دایرکتوری کاری شما تغییر یافته است. همچنین ممکن است بازبینی جدیدتری درون مخزن وجود داشته باشد. .SP .IP "" 0 \fB? \fIfile\fB\fR .IP "" 2 پروندهٔ \fIfile\fR در دایرکتوری کاری شما قرار دارد، اما با هیچ چیزی در مخزن منبع مطابقت ندارد، و در فهرست پرونده‌های نادیده‌گرفتنی \fBcvs\fR نیز قرار ندارد (شرح گزینهٔ \fB-I\fR را ببینید، و به گره `cvsignore\(aq در راهنمای CVS مراجعه کنید). اگر منابع کاری خود را حذف کنید، این پرونده از دست خواهد رفت. .SP .SH "release examples - نمونه‌های release" .SP دایرکتوری \fBtc\fR را رهاسازی (release) کرده و رونوشت کاری محلی خود را از پرونده‌ها حذف کنید. .SP .PD 0 .SP .IP "" 2 $ cd \&.. # \fRهنگام اجرای دستور \fBcvs release\fR باید\fR .IP "" 2 # \fRدقیقاً یک سطح بالاتر از کد‌های منبع قرار داشته باشید.\fR .IP "" 2 $ cvs release -d tc .IP "" 2 You have [0] altered files in this repository. .IP "" 2 Are you sure you want to release (and delete) directory \`tc\(aq: y .IP "" 2 $ .PD .IP "" 0 .SP .SH "remove - حذف (remove)" .SS "Remove files from active use - حذف پرونده‌ها از استفادهٔ فعال" .IX "remove (subcommand)" .SP .IP "\(bu" 2 خلاصه: remove [-flR] [files...] .IP "\(bu" 2 پیش‌نیاز: مخزن، دایرکتوری کاری. .IP "\(bu" 2 تغییرات: دایرکتوری کاری. .SP دستور \fBremove\fR برای حذف پرونده‌های ناخواسته از استفادهٔ فعال به کار می‌رود. کاربر معمولاً پیش از فراخوانی دستور \fBremove\fR، پرونده‌ها را از دایرکتوری کاری حذف می‌کند. تنها دایرکتوری کاری به‌روزرسانی می‌شود. تغییرات در مخزن تا زمان اجرای دستور \fBcommit\fR اعمال نخواهند شد. .SP دستور \fBremove\fR پرونده‌ها را از مخزن حذف نمی‌کند. \fBcvs\fR تمام داده‌های تاریخی را در مخزن نگه می‌دارد تا امکان بازسازی حالت‌های پیشین پروژه‌های تحت کنترل نسخه وجود داشته باشد. .SP برای واگردانیِ \fBcvs\fR \fBremove\fR یا احیای پرونده‌هایی که پیش‌تر حذف شده‌اند، به گره `add\(aq در راهنمای CVS مراجعه کنید. .SP .SH "remove options - گزینه‌های remove" .SP این گزینه‌های استاندارد توسط \fBremove\fR پشتیبانی می‌شوند (برای شرح کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ فقط در دایرکتوری کاری جاری اجرا شود. به `Recursive behavior\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-R\fR .IP "" 2 پردازش بازگشتی دایرکتوری‌ها. به `Recursive behavior\(aq در راهنمای CVS مراجعه کنید. .SP .SP علاوه بر این، این گزینه‌ها نیز پشتیبانی می‌شوند: .SP .IP "" 0 \fB-f\fR .IP "" 2 توجه داشته باشید که این رفتار استاندارد گزینهٔ \fB-f\fR بر پایهٔ تعریفِ گره `Common options\(aq در راهنمای CVS نیست. .SP حذف پرونده‌ها پیش از برچیدن آن‌ها از نسخه. .SP سلسله‌مراتب‌های کامل دایرکتوری به‌سادگی با استفاده از \fB-f\fR حذف می‌شوند، اما توجه داشته باشید که احیای سلسله‌مراتب‌های دایرکتوری به همان سادگیِ حذف آن‌ها نیست. .SP .SP .SH "remove examples - نمونه‌های remove" .SP .SS "Removing a file - حذف یک پرونده" .SP .PD 0 .SP .IP "" 2 $ cvs remove remove.me .IP "" 2 cvs remove: file \`remove.me\(aq still in working directory .IP "" 2 cvs remove: 1 file exists; remove it first .IP "" 2 $ rm -f remove.me .IP "" 2 $ cvs remove remove.me .IP "" 2 cvs remove: scheduling \`remove.me\(aq for removal .IP "" 2 cvs remove: use \(aqcvs commit\(aq to remove this file permanently .SP .IP "" 2 $ ls remove.it .IP "" 2 remove.it .IP "" 2 $ cvs remove -f remove.it .IP "" 2 cvs remove: scheduling \`remove.it\(aq for removal .IP "" 2 cvs remove: use \(aqcvs commit\(aq to remove this file permanently .PD .IP "" 0 .SP .SS "Removing entire directories - حذف تمام دایرکتوری‌ها" .SP .PD 0 .IP "" 2 $ tree -d a .IP "" 2 a .IP "" 2 |-- CVS .IP "" 2 \`-- b .IP "" 2 \`-- CVS .SP .IP "" 2 3 directories .IP "" 2 $ cvs remove -f a .IP "" 2 cvs remove: Removing a .IP "" 2 cvs remove: Removing a/b .IP "" 2 cvs remove: scheduling \`a/b/c\(aq for removal .IP "" 2 cvs remove: use \(aqcvs commit\(aq to remove this file permanently .PD .IP "" 0 .SP .SH "update - به‌روزرسانی (update)" .SS "Bring work tree in sync with repository - همگام‌سازی درخت کاری با مخزن" .IX "update (subcommand)" .SP .IP "\(bu" 2 update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D date] [-W spec] files\&... .IP "\(bu" 2 پیش‌نیاز: مخزن، دایرکتوری کاری. .IP "\(bu" 2 تغییرات: دایرکتوری کاری. .SP پس از اجرای checkout برای ایجاد رونوشت اختصاصی از کدهای منبع از مخزن مشترک، دیگر توسعه‌دهندگان به تغییر کد منبع مرکزی ادامه خواهند داد. گهگاه، در زمان مناسب در فرایند توسعه، می‌توانید از دستور \fBupdate\fR درون دایرکتوری کاری خود استفاده کنید تا کارهای خود را با هرگونه بازبینی اعمال‌شده بر مخزن منبع از زمان آخرین checkout یا update تطبیق دهید. .SP .SH "update options - گزینه‌های update" .SP این گزینه‌های استاندارد در \fBupdate\fR در دسترس هستند (برای توضیحات کامل آن‌ها به گره `Common options\(aq در راهنمای CVS مراجعه کنید): .SP .IP "" 0 \fB-D date\fR .IP "" 2 استفاده از تازه‌ترین بازبینی که پس از \fIdate\fR نباشد. این گزینه چسبنده (sticky) است و متضمن \fB-P\fR می‌باشد. برای اطلاعات بیشتر دربارهٔ برچسب‌ها/تاریخ‌های چسبنده به `Sticky tags\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-f\fR .IP "" 2 تنها با پرچم‌های \fB-D \fIdate\fB\fR یا \fB-r \fItag\fB\fR مفید است. اگر هیچ بازبینی مطابقی یافت نشود، تازه‌ترین بازبینی را بازیابی می‌کند (به جای نادیده گرفتن پرونده). .SP .IP "" 0 \fB-k \fIkflag\fB\fR .IP "" 2 پردازش کلیدواژه‌ها بر اساس \fIkflag\fR. به `Keyword substitution\(aq در راهنمای CVS مراجعه کنید. این گزینه چسبنده است؛ به‌روزرسانی‌های بعدی این پرونده در این دایرکتوری کاری از همان \fIkflag\fR استفاده خواهند کرد. می‌توان دستور \fBstatus\fR را برای مشاهدهٔ گزینه‌های چسبنده بررسی کرد. برای اطلاعات بیشتر دربارهٔ دستور \fBstatus\fR به `Invoking CVS\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-l\fR .IP "" 2 محلی؛ اجرا تنها در دایرکتوری کاری فعلی. به `Recursive behavior\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-P\fR .IP "" 2 هرس دایرکتوری‌های خالی. به `Moving directories\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-p\fR .IP "" 2 ارسال پرونده‌ها به خروجی استاندارد. .SP .IP "" 0 \fB-R\fR .IP "" 2 به‌روزرسانی بازگشتی دایرکتوری‌ها (پیش‌فرض). به `Recursive behavior\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-r rev\fR .IP "" 2 بازیابی بازبینی/برچسب \fIrev\fR. این گزینه چسبنده است و متضمن \fB-P\fR می‌باشد. برای اطلاعات بیشتر دربارهٔ برچسب‌ها/تاریخ‌های چسبنده به `Sticky tags\(aq در راهنمای CVS مراجعه کنید. .SP این گزینه‌های ویژه نیز برای \fBupdate\fR در دسترس هستند. .SP .IP "" 0 \fB-A\fR .IP "" 2 بازنشانی هرگونه برچسب، تاریخ یا گزینه‌های \fB-k\fR چسبنده. گزینه‌های \fB-k\fR چسبنده را بر روی پرونده‌های تغییریافته بازنشانی نمی‌کند. برای اطلاعات بیشتر دربارهٔ برچسب‌ها/تاریخ‌های چسبنده به `Sticky tags\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-C\fR .IP "" 2 بازنویسی پرونده‌های محلی تغییریافته با رونوشت‌های تمیز از مخزن (با این حال، پروندهٔ تغییریافته در \fB.#\fIfile\fB.\fIrevision\fB\fR ذخیره می‌شود). .SP .IP "" 0 \fB-d\fR .IP "" 2 ایجاد هرگونه دایرکتوری موجود در مخزن در صورتی که در دایرکتوری کاری وجود نداشته باشند. به‌طور معمول، \fBupdate\fR تنها بر روی دایرکتوری‌ها و پرونده‌هایی اثر می‌گذارد که پیش‌تر در دایرکتوری کاری شما ثبت شده‌اند. .SP این گزینه برای به‌روزرسانی دایرکتوری‌هایی که پس از checkout اولیه در مخزن ایجاد شده‌اند مفید است؛ اما یک اثر جانبی ناخواسته دارد. اگر هنگام ایجاد دایرکتوری کاری خود تعمداً از برخی دایرکتوری‌ها در مخزن صرف‌نظر کرده باشید (چه از طریق استفاده از نام پودمان یا با درج صریح پرونده‌ها و دایرکتوری‌های مورد نظر در خط فرمان)، آن‌گاه به‌روزرسانی با \fB-d\fR آن دایرکتوری‌ها را ایجاد خواهد کرد، که ممکن است مطلوب شما نباشد. .SP .IP "" 0 \fB-I \fIname\fB\fR .IP "" 2 نادیده گرفتن پرونده‌هایی با نام مطابق با \fIname\fR (در دایرکتوری کاری شما) در طول به‌روزرسانی. می‌توانید بیش از یک بار \fB-I\fR را در خط فرمان مشخص کنید تا چندین پرونده نادیده گرفته شوند. از \fB-I !\fR برای جلوگیری از نادیده گرفتن هرگونه پرونده استفاده کنید. برای راه‌های دیگر نادیده گرفتن پرونده‌ها توسط \fBcvs\fR به `cvsignore\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-W\fIspec\fB\fR .IP "" 2 مشخص کردن نام پرونده‌هایی که باید در طول به‌روزرسانی پالایش شوند. می‌توانید از این گزینه به‌طور مکرر استفاده کنید. .SP \fIspec\fR می‌تواند الگویی از نام پرونده از همان نوعی باشد که در پروندهٔ \fB.cvswrappers\fR مشخص می‌شود. به `Wrappers\(aq در راهنمای CVS مراجعه کنید. .SP .IP "" 0 \fB-j\fIrevision\fB\fR .IP "" 2 با دو گزینهٔ \fB-j\fR، ادغام تغییرات از بازبینی مشخص‌شده با نخستین گزینهٔ \fB-j\fR به بازبینی مشخص‌شده با دومین گزینهٔ \fBj\fR، درون دایرکتوری کاری. .SP با یک گزینهٔ \fB-j\fR، ادغام تغییرات از بازبینی نیا به بازبینی مشخص‌شده با گزینهٔ \fB-j\fR، درون دایرکتوری کاری. بازبینی نیا، نیاکان مشترک بازبینی‌ای است که دایرکتوری کاری بر پایهٔ آن است، و بازبینی مشخص‌شده در گزینهٔ \fB-j\fR. .SP توجه داشته باشید که استفاده از یک گزینهٔ منفرد \fB-j \fItagname\fB\fR به جای \fB-j \fIbranchname\fB\fR برای ادغام تغییرات از یک شاخه، اغلب پرونده‌هایی را که در شاخه حذف شده‌اند پاک نخواهد کرد. برای اطلاعات بیشتر به `Merging adds and removals\(aq در راهنمای CVS مراجعه کنید. .SP علاوه بر این، هر گزینهٔ \fB-j\fR می‌تواند شامل یک مشخصهٔ تاریخ اختیاری باشد که در صورت استفاده با شاخه‌ها، می‌تواند بازبینی انتخاب‌شده را به بازبینی درون تاریخی معین محدود کند. تاریخ اختیاری با افزودن یک دونقطه (:) به برچسب مشخص می‌شود: \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR. .SP به `Branching and merging\(aq در راهنمای CVS مراجعه کنید. .SP .SP .SH "update output - خروجی update" .SP دستورهای \fBupdate\fR و \fBcheckout\fR با چاپ یک خط برای هر پرونده که پیش از آن یک نویسه به نشانهٔ وضعیت پرونده قرار دارد، شما را از پیشرفت کار خود مطلع می‌سازند: .SP .IP "" 0 \fBU \fIfile\fB\fR .IP "" 2 پرونده نسبت به مخزن به‌روزرسانی شد. این وضعیت برای هر پرونده‌ای رخ می‌دهد که در مخزن وجود دارد اما در دایرکتوری کاری شما نیست، و همچنین برای پرونده‌هایی که شما آن‌ها را تغییر نداده‌اید اما تازه‌ترین نسخهٔ موجود در مخزن نیستند. .SP .IP "" 0 \fBP \fIfile\fB\fR .IP "" 2 مشابه \fBU\fR، اما کارساز \fBcvs\fR به جای ارسال کل پرونده، یک وصله (patch) ارسال می‌کند. این کار نتیجه‌ای یکسان با \fBU\fR با مصرف پهنای باند کمتر دارد. .SP .IP "" 0 \fBA \fIfile\fB\fR .IP "" 2 پرونده به رونوشت اختصاصی شما از کدهای منبع اضافه شده است و با اجرای \fBcommit\fR بر روی پرونده، به مخزن منبع اضافه خواهد شد. این یادآوری است به شما مبنی بر این‌که پرونده باید ثبت (commit) شود. .SP .IP "" 0 \fBR \fIfile\fB\fR .IP "" 2 پرونده از رونوشت اختصاصی شما از کدهای منبع حذف شده است و با اجرای \fBcommit\fR بر روی پرونده، از مخزن منبع حذف خواهد شد. این یادآوری است به شما مبنی بر این‌که پرونده باید ثبت (commit) شود. .SP .IP "" 0 \fBM \fIfile\fB\fR .IP "" 2 پرونده در دایرکتوری کاری شما تغییر یافته است. .SP وضعیت \fBM\fR می‌تواند بیانگر یکی از دو حالت برای پرونده‌ای باشد که روی آن کار می‌کنید: یا تغییری در همان پرونده در مخزن ایجاد نشده است، بنابراین پرونده همان‌گونه که آخرین بار دیده‌اید باقی می‌ماند؛ یا تغییراتی در مخزن و همچنین در رونوشت شما رخ داده است، اما آن‌ها با موفقیت و بدون تداخل در دایرکتوری کاری شما ادغام شده‌اند. .SP اگر \fBcvs\fR کار شما را ادغام کند، پیام‌هایی را چاپ خواهد کرد، و یک رونوشت پشتیبان از پروندهٔ کاری شما (به همان شکلی که پیش از اجرای \fBupdate\fR بود) ایجاد خواهد شد. نام دقیق آن پرونده هنگام اجرای \fBupdate\fR چاپ می‌شود. .SP .IP "" 0 \fBC \fIfile\fB\fR .IP "" 2 .IX "\&.# files" .IX "__ files (VMS)" هنگام تلاش برای ادغام تغییرات شما در \fIfile\fR با تغییرات موجود در مخزن منبع، یک تداخل (conflict) تشخیص داده شد. اکنون \fIfile\fR (رونوشت موجود در دایرکتوری کاری شما) حاصل تلاش برای ادغام دو بازبینی است؛ همچنین یک رونوشت دست‌نخورده از پروندهٔ شما با نام \fB.#\fIfile\fB.\fIrevision\fB\fR در دایرکتوری کاری قرار دارد که در آن \fIrevision\fR بازبینی‌ای است که پروندهٔ تغییریافتهٔ شما از آن آغاز شده بود. تداخل را همان‌گونه که در `Conflicts example\(aq در راهنمای CVS شرح داده شده است حل کنید. (توجه داشته باشید که برخی سامانه‌ها پرونده‌هایی را که با \fB.#\fR آغاز می‌شوند در صورتی که چند روز به آن‌ها دسترسی پیدا نشود، به‌طور خودکار پاک می‌کنند. اگر قصد دارید رونوشتی از پروندهٔ اصلی خود را نگه دارید، تغییر نام آن ایدهٔ بسیار خوبی است.) در \fBvms\fR، نام پرونده به جای \fB.#\fR با \fB__\fR آغاز می‌شود. .SP .IP "" 0 \fB? \fIfile\fB\fR .IP "" 2 پروندهٔ \fIfile\fR در دایرکتوری کاری شما قرار دارد، اما متناظر با هیچ چیزی در مخزن منبع نیست و در فهرست پرونده‌های نادیده‌گرفته‌شده توسط \fBcvs\fR نیز وجود ندارد (توضیحات گزینهٔ \fB-I\fR و گره `cvsignore\(aq در راهنمای CVS را ببینید). .SH "AUTHORS - نویسندگان" .TP Dick Grune نویسندهٔ اصلی نسخهٔ اسکریپت شل .B cvs که در انتشار volume6 در دسامبر ۱۹۸۶ در .B comp.sources.unix ارسال شد. بخش عمده‌ای از الگوریتم‌های حل تداخل در .B cvs به او نسبت داده می‌شود. .TP Brian Berliner برنامه‌نویس و طراح خود برنامهٔ .B cvs در آوریل ۱۹۸۹، بر پایهٔ کار اولیهٔ انجام‌شده توسط دیک. .TP Jeff Polk کمک به برایان در طراحی پودمان .B cvs و پشتیبانی از شاخهٔ تأمین‌کننده (vendor branch) و نویسندهٔ اسکریپت شل .BR checkin ( 1 ) (نیای \fBcvs import\fP). .TP Larry Jones, Derek R. Price, and Mark D. Baushke به نگهداری .B cvs برای سال‌های متمادی کمک کرده‌اند. .TP و بسیاری افراد دیگر که نام بردن از آن‌ها در اینجا ممکن نیست. .SH "SEE ALSO - همچنین ببینید" جامع‌ترین راهنما برای CVS کتاب Version Management with CVS نوشتهٔ Per Cederqvist و دیگران است. بسته به سامانهٔ شما، ممکن است بتوانید با دستور .B info CVS به آن دسترسی پیدا کنید یا ممکن است به صورت cvs.pdf (قالب سند قابل حمل)، cvs.ps (پست‌اسکریپت)، cvs.texinfo (منبع Texinfo) یا cvs.html در دسترس باشد. .SP برای دریافت به‌روزرسانی‌های CVS، اطلاعات بیشتر دربارهٔ مستندات، نرم‌افزارهای مرتبط با CVS، توسعهٔ CVS و موارد دیگر، ببینید: .in +1i .SP .PD 0 .IP "" 4 .B http://cvs.nongnu.org .in -1i .SP .BR ci ( 1 ), .BR co ( 1 ), .BR cvs ( 5 ), .BR cvsbug ( 8 ), .BR diff ( 1 ), .BR grep ( 1 ), .BR patch ( 1 ), .BR rcs ( 1 ), .BR rcsdiff ( 1 ), .BR rcsmerge ( 1 ), .BR rlog ( 1 ).