.TH cvs 5 "12 February 1992" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .SH "نام (NAME)" cvs \- قالب پرونده‌ها و دایرکتوری‌های کنترلی سامانه نسخه‌بندی همزمان CVS .SH "نکته (NOTE)" این مستندات ممکن است دیگر به‌روز نباشند. لطفاً همان‌طور که در .BR cvs ( 1 ) مشخص شده است به Cederqvist (راهنمای CVS) مراجعه کنید. .SH "خلاصه دستور (SYNOPSIS)" .hy 0 .na .TP .B $CVSROOT/CVSROOT/commitinfo,v .TP .B $CVSROOT/CVSROOT/cvsignore,v .TP .B $CVSROOT/CVSROOT/cvswrappers,v .TP .B $CVSROOT/CVSROOT/editinfo,v .TP .B $CVSROOT/CVSROOT/history .TP .B $CVSROOT/CVSROOT/loginfo,v .TP .B $CVSROOT/CVSROOT/modules,v .TP .B $CVSROOT/CVSROOT/rcsinfo,v .TP .B $CVSROOT/CVSROOT/taginfo,v .ad b .hy 1 .SH "توضیحات (DESCRIPTION)" .B cvs سامانه‌ای برای فراهم کردن کنترل مبدأ برای مجموعه‌های سلسله‌مراتبی از دایرکتوری‌های مبدأ است. دستورات و رویه‌های استفاده از \fBcvs\fP در .BR cvs ( 1 ) شرح داده شده‌اند. .SP .B cvs با رونوشت‌برداری از نسخه‌های خاص پرونده‌ها به (و بازگرداندن تغییرات از) \fIworking directories\fP (دایرکتوری‌های کاری) خصوصی توسعه‌دهندگان، \fIsource repositories\fP (مخازن مبدأ) را مدیریت می‌کند؛ یعنی دایرکتوری‌هایی که شامل رونوشت‌های اصلی پرونده‌های تحت کنترل نسخه هستند. از نظر ساختار پرونده‌ای، هر مخزن مبدأ منفرد یک زیردایرکتوری بی‌واسطه از \fB$CVSROOT\fP است. .SP پرونده‌هایی که در اینجا شرح داده شده‌اند پرونده‌های پشتیبان هستند؛ وجود آن‌ها برای کارکرد \fBcvs\fP الزامی نیست، اما به شما امکان می‌دهند تا عملکرد \fBcvs\fP را انعطاف‌پذیرتر کنید. .SP می‌توانید از پرونده «\|modules\|» برای تعریف نام‌های نمادین برای مجموعه‌هایی از کدهای مبدأ نگهداری‌شده با \fBcvs\fP استفاده کنید. اگر پرونده «\|modules\|» وجود نداشته باشد، توسعه‌دهندگان باید مسیرهای کامل (مطلق، یا نسبی نسبت به \fB$CVSROOT\fP) را برای پرونده‌هایی که مایل به مدیریت آن‌ها با دستورات \fBcvs\fP هستند مشخص کنند. .SP می‌توانید از پرونده «\|commitinfo\|» برای تعریف برنامه‌هایی استفاده کنید که هر زمان `\|\fBcvs commit\fP\|' در آستانه اجرا است، اجرا شوند. این برنامه‌ها برای بررسی‌های «پیش از ثبت» (pre-commit) جهت اعتبارسنجی اینکه پرونده‌های تغییریافته، افزوده‌شده و حذف‌شده واقعاً آماده ثبت هستند، استفاده می‌شوند. برخی از کاربردهای این بررسی ممکن است بستن دسترسی بخشی از (یا تمام) مخزن مبدأ برای فرد یا گروهی خاص باشد. یا شاید اعتبارسنجی اینکه پرونده‌های تغییریافته با استانداردهای شیوه‌نامه کدنویسی آن محیط مطابقت دارند. .SP می‌توانید از پرونده «\|cvswrappers\|» برای ثبت دستورات لفاف (wrapper) .B cvs استفاده کنید تا هنگام ورود پرونده‌ها به مخزن یا خروج از آن به کار گرفته شوند. لفاف‌ها امکان پردازش پرونده یا دایرکتوری را در مسیر ورود و خروج از CVS فراهم می‌کنند. کاربردهای در نظر گرفته‌شده فراوان است؛ یک کاربرد احتمالی می‌تواند قالب‌بندی مجدد یک پرونده C پیش از ثبت آن باشد، تا تمامی کدهای موجود در مخزن ظاهری یکدست داشته باشند. .SP می‌توانید از پرونده «\|loginfo\|» برای تعریف برنامه‌هایی استفاده کنید که پس از هر .BR commit اجرا شوند، که یک مدخل گزارش برای تغییرات در مخزن می‌نویسد. این برنامه‌های ثبت گزارش می‌توانند برای ضمیمه کردن پیام گزارش به یک پرونده استفاده شوند. یا ارسال پیام گزارش از طریق ایمیل به گروهی از توسعه‌دهندگان. یا شاید ارسال پیام گزارش به یک گروه خبری خاص. .SP می‌توانید از پرونده «\|taginfo\|» برای تعریف برنامه‌هایی استفاده کنید که پس از هر عملیات .BR tag یا .B rtag اجرا شوند. این برنامه‌ها ممکن است برای ضمیمه کردن یک پیام به پرونده‌ای حاوی نام برچسب جدید و برنامه‌نویسی که آن را ایجاد کرده، یا ارسال ایمیل به گروهی از توسعه‌دهندگان، یا شاید ارسال پیام به یک گروه خبری خاص استفاده شوند. .SP می‌توانید از پرونده «\|rcsinfo\|» برای تعریف قالب‌های پیام‌های گزارش استفاده کنید. .SP می‌توانید از پرونده «\|editinfo\|» برای تعریف برنامه‌ای استفاده کنید که جهت ویرایش/اعتبارسنجی مدخل‌های گزارش `\|\fBcvs commit\fP\|' اجرا شود. این قابلیت بیشترین کاربرد را در ترکیب با مشخصات قالب‌های «\|rcsinfo\|» دارد، زیرا می‌تواند بررسی کند که آیا فیلدهای مناسب قالب توسط کاربری که تغییر را ثبت می‌کند تکمیل شده‌اند یا خیر. .SP می‌توانید از پرونده «\|cvsignore\|» برای مشخص کردن فهرست پیش‌فرض پرونده‌هایی که باید هنگام \fBupdate\fP نادیده گرفته شوند استفاده کنید. .SP می‌توانید از پرونده «\|history\|» برای ثبت دستورات \fBcvs\fP که بر مخزن تأثیر می‌گذارند استفاده کنید. ایجاد این پرونده قابلیت ثبت تاریخچه را فعال می‌کند. .SH "پرونده‌ها (FILES)" .TP .B modules پرونده «\|modules\|» تعاریف شما از نام‌ها را برای مجموعه‌های کد مبدأ ثبت می‌کند. در صورتی که با استفاده از \fBcvs\fP پرونده‌ای با قالب صحیح را در `\|\fB$CVSROOT/CVSROOT/modules,v\fP\|' ثبت (check in) کنید، \fBcvs\fP از این تعاریف استفاده خواهد کرد. .SP پرونده «\|modules\|» علاوه بر تعاریف ماژول‌ها می‌تواند حاوی خطوط خالی و توضیحات (خطوطی که با `\|\fB#\fP\|' آغاز می‌شوند) باشد. خطوط طولانی را می‌توان با قرار دادن یک بک‌اسلش («\e») به عنوان آخرین نویسه خط، در خط بعدی ادامه داد. .SP یک \fImodule definition\fP (تعریف ماژول) یک خط منفرد از پرونده «\|modules\|» در یکی از دو قالب ممکن است. در هر دو حالت، \fImname\fP نشان‌دهنده نام نمادین ماژول است و ادامه خط تعریف آن می‌باشد. .SP \fImname\fP \fB\-a\fP \fIaliases\fP\|.\|.\|. .br این ساده‌ترین روش برای تعریف ماژول \fImname\fP است. گزینه `\|\fB\-a\fP\|' این تعریف را به عنوان یک نام مستعار ساده مشخص می‌کند: \fBcvs\fP با هر بار استفاده از \fImname\fP (به عنوان آرگومان دستور) طوری رفتار می‌کند که گویی فهرست نام‌های \fIaliases\fP به جای آن مشخص شده است. \fIaliases\fP می‌تواند شامل نام سایر ماژول‌ها یا مسیرها باشد. هنگامی که در \fIaliases\fP از مسیرها استفاده می‌کنید، `\|\fBcvs checkout\fP\|' تمام دایرکتوری‌های میانی را در دایرکتوری کاری ایجاد می‌کند، دقیقاً مانند اینکه آن مسیر به صراحت در آرگومان‌های \fBcvs\fP مشخص شده باشد. .SP .nf \fImname\fP [ \fIoptions\fP ] \fIdir\fP [ \fIfiles\fP\|.\|.\|. ] [ \fB&\fP\fImodule\fP\|.\|.\|. ] .fi .SP در ساده‌ترین حالت، این شکل از تعریف ماژول به `\|\fImname dir\fP\|' خلاصه می‌شود. این کار تمامی پرونده‌های موجود در دایرکتوری \fIdir\fP را به عنوان ماژول \fImname\fP تعریف می‌کند. \fIdir\fP یک مسیر نسبی (از \fB$CVSROOT\fP) به دایرکتوری مبدأ در یکی از مخازن مبدأ است. در این حالت، هنگام \fBcheckout\fP، یک دایرکتوری منفرد به نام \fImname\fP به عنوان دایرکتوری کاری ایجاد می‌شود؛ به طور پیش‌فرض هیچ سطح دایرکتوری میانی استفاده نمی‌شود، حتی اگر \fIdir\fP مسیری شامل چندین سطح دایرکتوری بوده باشد. .SP با مشخص کردن صریح \fIfiles\fP در تعریف ماژول پس از \fIdir\fP، می‌توانید پرونده‌های خاصی را از دایرکتوری \fIdir\fP انتخاب کنید. تعریف نمونه برای \fBmodules\fP مثالی از ماژولی است که با یک پرونده منفرد از دایرکتوری خاصی تعریف شده است. در اینجا مثال دیگری آمده است: .SP .nf .ft B m4test unsupported/gnu/m4 foreach.m4 forloop.m4 .ft P .fi .SP با این تعریف، اجرای `\|\fBcvs checkout m4test\fP\|' یک دایرکتوری کاری منفرد به نام «\|m4test\|» حاوی دو پرونده فهرست‌شده ایجاد می‌کند که هر دو از یک دایرکتوری مشترک در چند سطح عمق در مخزن مبدأ \fBcvs\fP می‌آیند. .SP یک تعریف ماژول می‌تواند با گنجاندن `\|\fB&\fP\fImodule\fP\|' در تعریف خود، به سایر ماژول‌ها ارجاع دهد. دستور \fBcheckout\fP برای هر یک از این \fImodule\fPها، یک زیردایرکتوری در دایرکتوری کاری شما ایجاد می‌کند. .br .I ویژگی جدید در \fBcvs\fP 1.3؛ اگر تعاریف ماژول‌ها را با نسخه‌های قدیمی‌تر \fBcvs\fP به اشتراک می‌گذارید، از این ویژگی اجتناب کنید. .SP در نهایت، می‌توانید از یک یا چند مورد از \fIoptions\fP (گزینه‌های) زیر در تعاریف ماژول‌ها استفاده کنید: .SP \&`\|\fB\-d\fP \fIname\fP\|' برای نام‌گذاری دایرکتوری کاری به چیزی غیر از نام ماژول. .br .I ویژگی جدید در \fBcvs\fP 1.3؛ اگر تعاریف ماژول‌ها را با نسخه‌های قدیمی‌تر \fBcvs\fP به اشتراک می‌گذارید، از این ویژگی اجتناب کنید. .SP \&`\|\fB\-i\fP \fIprog\fP\|' به شما امکان می‌دهد تا برنامه‌ای (\fIprog\fP) را برای اجرا در زمان ثبت (commit) شدن پرونده‌های یک ماژول مشخص کنید. \fIprog\fP با یک آرگومان منفرد اجرا می‌شود که مسیر کامل دایرکتوری مربوطه در مخزن مبدأ است. پرونده‌های «\|commitinfo\|»، «\|loginfo\|» و «\|editinfo\|» روش‌های دیگری برای فراخوانی یک برنامه هنگام \fBcommit\fP فراهم می‌کنند. .SP `\|\fB\-o\fP \fIprog\fP\|' به شما امکان می‌دهد برنامه‌ای (\fIprog\fP) را برای اجرا در زمان دریافت (checkout) پرونده‌های یک ماژول مشخص کنید. \fIprog\fP با یک آرگومان منفرد، یعنی نام ماژول، اجرا می‌شود. .SP `\|\fB\-e\fP \fIprog\fP\|' به شما امکان می‌دهد برنامه‌ای (\fIprog\fP) را برای اجرا در زمان برون‌ریزی (export) پرونده‌های یک ماژول مشخص کنید. \fIprog\fP با یک آرگومان منفرد، یعنی نام ماژول، اجرا می‌شود. .SP `\|\fB\-t\fP \fIprog\fP\|' به شما امکان می‌دهد برنامه‌ای (\fIprog\fP) را برای اجرا در زمان برچسب‌گذاری (tag) پرونده‌های یک ماژول مشخص کنید. \fIprog\fP با دو آرگومان اجرا می‌شود: نام ماژول و برچسب نمادین مشخص‌شده برای \fBrtag\fP. .SP `\|\fB\-u\fP \fIprog\fP\|' به شما امکان می‌دهد برنامه‌ای (\fIprog\fP) را برای اجرا در زمانی که `\|\fBcvs update\fP\|' از دایرکتوری سطح بالای ماژول دریافت‌شده اجرا می‌شود مشخص کنید. \fIprog\fP با یک آرگومان منفرد اجرا می‌شود که مسیر کامل به مخزن مبدأ برای این ماژول است. .TP \&\fBcommitinfo\fP, \fBloginfo\fP, \fBrcsinfo\fP, \fBeditinfo\fP این پرونده‌ها همگی برنامه‌هایی را برای فراخوانی در نقاط مختلف فرایند `\|\fBcvs commit\fP\|' مشخص می‌کنند. آن‌ها ساختار مشترکی دارند. هر خط یک جفت فیلد است: یک عبارت باقاعده (regular expression)، که با فاصله خالی از یک نام پرونده یا الگوی خط فرمان جدا شده است. هر زمان که یکی از عبارات باقاعده با نام دایرکتوری در مخزن مطابقت داشته باشد، ادامه خط استفاده می‌شود. اگر خط با نویسه \fB#\fP شروع شود، کل خط به عنوان توضیح در نظر گرفته شده و نادیده گرفته می‌شود. فاصله خالی بین فیلدها نیز نادیده گرفته می‌شود. .SP برای «\|loginfo\|»، ادامه خط یک الگوی خط فرمان برای اجرا است. الگوها علاوه بر نام برنامه، می‌توانند شامل هر فهرست دلخواهی از آرگومان‌ها باشند. اگر در جایی از فهرست آرگومان‌ها `\|\fB%s\fP\|' را بنویسید، \fBcvs\fP در آن نقطه، فهرست پرونده‌های تحت تأثیر \fBcommit\fP را فراهم می‌کند. نخستین مدخل در این فهرست، مسیر نسبی درون مخزن مبدأ است که تغییر در آن در حال اعمال است. آرگومان‌های باقی‌مانده پرونده‌هایی را فهرست می‌کنند که با این فراخوانی \fBcommit\fP در حال تغییر، افزوده‌شدن یا حذف شدن هستند. .SP برای «\|taginfo\|»، ادامه خط یک الگوی خط فرمان برای اجرا است. آرگومان‌هایی که به دستور ارسال می‌شوند، به ترتیب عبارتند از: .I tagname (نام برچسب)، .I operation (عملیات، یعنی .B add برای `tag'، .B mov برای `tag -F'، و .B del برای `tag -d')، .I repository (مخزن)، و موارد باقی‌مانده جفت‌هایی از .B "filename revision" (نام پرونده و نسخه) هستند. خروج غیرصفر برنامه پالایه باعث لغو برچسب‌گذاری خواهد شد. .SP برای «\|commitinfo\|»، ادامه خط یک الگوی خط فرمان برای اجرا است. این الگو علاوه بر نام برنامه، می‌تواند شامل هر فهرست دلخواهی از آرگومان‌ها باشد. مسیر کامل به مخزن مبدأ فعلی به انتهای الگو اضافه می‌شود، و پس از آن نام پرونده‌های دخیل در ثبت (پرونده‌های افزوده‌شده، حذف‌شده و تغییریافته) می‌آید. .SP برای «\|rcsinfo\|»، ادامه خط مسیر کامل پرونده‌ای است که باید در قالب پیام گزارش بارگیری شود. .SP برای «\|editinfo\|»، ادامه خط یک الگوی خط فرمان برای اجرا است. این الگو علاوه بر نام برنامه، می‌تواند شامل هر فهرست دلخواهی از آرگومان‌ها باشد. مسیر کامل به پرونده قالب پیام گزارش فعلی به الگو پیوست می‌شود. .SP می‌توانید به جای عبارت باقاعده از یکی از دو رشته ویژه استفاده کنید: `\|\fBALL\fP\|' یک الگوی خط فرمان را مشخص می‌کند که همیشه باید اجرا شود، و `\|\fBDEFAULT\fP\|' الگوی خط فرمانی را مشخص می‌کند که در صورت عدم تطابق هیچ عبارت باقاعده‌ای استفاده می‌شود. .SP پرونده «\|commitinfo\|» شامل دستوراتی برای اجرا \fIپیش از\fP هرگونه فعالیت \fBcommit\fP دیگر است، تا به شما امکان بررسی هر شرطی را بدهد که پیش از پیشروی \fBcommit\fP باید برآورده شود. ادامه \fBcommit\fP تنها در صورتی اجرا می‌شود که تمامی دستورات انتخاب‌شده از این پرونده با وضعیت خروج \fB0\fP پایان یابند. .SP پرونده «\|rcsinfo\|» به شما امکان می‌دهد تا \fIقالب‌های گزارش\fP را برای نشست گزارش‌گیری \fBcommit\fP مشخص کنید؛ می‌توانید از این برای فراهم کردن فرمی برای ویرایش هنگام پر کردن گزارش \fBcommit\fP استفاده کنید. فیلد پس از عبارت باقاعده در این پرونده، شامل نام پرونده‌ها (پرونده‌های حاوی فرم‌های گزارش‌گیری) به جای الگوهای دستور است. .SP پرونده «\|editinfo\|» به شما امکان می‌دهد تا اسکریپتی را \fIپیش از آغاز ثبت\fP، اما پس از ثبت اطلاعات گزارش اجرا کنید. این اسکریپت‌های «ویرایش» می‌توانند اطلاعات ثبت‌شده در پرونده گزارش را اعتبارسنجی کنند. اگر اسکریپت ویرایش با وضعیتی غیر از صفر خارج شود، عملیات ثبت لغو می‌شود. .SP پرونده «\|loginfo\|» شامل دستوراتی برای اجرا \fIدر پایان\fP عملیات ثبت است. متنی که به عنوان پیام گزارش ثبت مشخص شده است از طریق لوله (pipe) به دستور فرستاده می‌شود؛ کاربردهای معمول شامل ارسال ایمیل، ثبت یک مقاله در یک گروه خبری، یا ضمیمه کردن به یک پرونده مرکزی است. .TP \&\fBcvsignore\fP, \fB.cvsignore\fP فهرست پیش‌فرض پرونده‌ها (یا الگوهای نام پرونده .BR sh ( 1 )) برای نادیده گرفتن در حین `\|\fBcvs update\fP\|'. در زمان راه‌اندازی، \fBcvs\fP فهرست پیش‌فرض الگوهای نام پرونده کامپایل‌شده داخلی را بارگیری می‌کند (به .BR cvs ( 1 ) مراجعه کنید). سپس فهرست مربوط به هر مخزن موجود در \fB$CVSROOT/CVSROOT/cvsignore\fP بارگیری می‌شود، در صورتی که وجود داشته باشد. سپس فهرست مخصوص کاربر از `\|$HOME/.cvsignore\|' بارگیری می‌شود. در نهایت، همان‌طور که \fBcvs\fP در دایرکتوری‌های شما پیمایش می‌کند، هر زمان که پرونده «\|.cvsignore\|» مخصوص دایرکتوری را بیابد آن را بارگیری می‌کند. این پرونده‌های مخصوص دایرکتوری تنها برای دقیقاً همان دایرکتوری حاوی آن‌ها معتبر هستند، نه برای هیچ‌یک از زیردایرکتوری‌ها. .TP .B history این پرونده را در \fB$CVSROOT/CVSROOT\fP ایجاد کنید تا ثبت وقایع تاریخچه فعال شود (به توضیحات `\|\fBcvs history\fP\|' مراجعه کنید). .SH "همچنین ببینید (SEE ALSO)" .BR cvs ( 1 ) .SH "رونوشت (COPYING)" حق نشر \(co 1992 Cygnus Support, Brian Berliner, and Jeff Polk .PP مجوز تهیه و توزیع نسخه‌های عین متن این راهنما اعطا می‌شود مشروط بر اینکه اعلان حق نشر و این اعلان مجوز در تمام نسخه‌ها حفظ شود. .PP مجوز رونوشت‌برداری و توزیع نسخه‌های تغییریافته این راهنما تحت شرایط نسخه عین متن اعطا می‌شود، مشروط بر اینکه کل اثر اشتقاقی حاصل تحت شرایط اعلان مجوزی کاملاً یکسان با این اعلان توزیع شود. .PP مجوز رونوشت‌برداری و توزیع ترجمه‌های این راهنما به زبان‌های دیگر تحت شرایط فوق برای نسخه‌های تغییریافته اعطا می‌شود، با این تفاوت که این اعلان مجوز می‌تواند در ترجمه‌های تأییدشده توسط بنیاد نرم‌افزار آزاد (Free Software Foundation) به جای زبان انگلیسی اصلی گنجانده شود.