RCS(1) General Commands Manual RCS(1)

rcs - تغییر مشخصه‌های فایل‌های RCS

rcs options file ...

دستور rcs فایل‌های RCS جدید ایجاد می‌کند یا مشخصه‌های فایل‌های موجود را تغییر می‌دهد. یک فایل RCS شامل چندین بازبینی از متن، یک فهرست دسترسی، یک گزارش تغییرات، متن توضیحی، و برخی مشخصه‌های کنترلی است. برای کارکرد rcs، نام کاربری فراخواننده باید در فهرست دسترسی باشد، مگر اینکه فهرست دسترسی خالی باشد، فراخواننده مالک فایل یا مدیر سیستم (superuser) باشد، یا گزینهٔ -i مشخص شده باشد.

نام‌های فایلی که با یک پسوند RCS مطابقت دارند، نشان‌دهندهٔ فایل‌های RCS هستند؛ سایر نام‌ها نشان‌دهندهٔ فایل‌های کاری می‌باشند. نام‌ها همان‌طور که در ci(1) توضیح داده شده است، جفت می‌شوند. شماره‌های بازبینی از ساختار نحوی شرح داده‌شده در ci(1) پیروی می‌کنند.

ایجاد و مقداردهی اولیهٔ یک فایل RCS جدید، بدون ثبت هیچ بازبینی‌ای. اگر نام فایل RCS شامل مؤلفهٔ دایرکتوری نباشد، ابتدا تلاش می‌کند آن را در زیردایرکتوری ./RCS، و سپس در دایرکتوری جاری قرار دهد. اگر فایل RCS از قبل وجود داشته باشد، یک پیام خطا چاپ می‌کند.
نام‌های کاربری موجود در فهرست جداشده با کامای logins را به فهرست دسترسی فایل RCS اضافه می‌کند.
فهرست دسترسیِ oldfile را به فهرست دسترسی فایل RCS اضافه می‌کند.
نام‌های کاربری موجود در فهرست جداشده با کامای logins را از فهرست دسترسی فایل RCS حذف می‌کند. اگر logins ذکر نشود، کل فهرست دسترسی را پاک می‌کند.
شاخهٔ پیش‌فرض را روی rev تنظیم می‌کند. اگر rev ذکر نشود، شاخهٔ پیش‌فرض به بالاترین شاخه روی تنه (trunk) (به‌طور پویا) بازنشانی می‌شود.
پیشوند توضیح (comment leader) را روی string تنظیم می‌کند. یک ci اولیه، یا یک rcs -i بدون -c، پیشوند توضیح را بر اساس پسوند نام فایل کاری حدس می‌زند.

این گزینه منسوخ شده است، زیرا RCS معمولاً هنگام درج خطوط گزارش در زمان استخراج (checkout) از پیشوند خط قبلیِ $Log$ استفاده می‌کند (به co(1) مراجعه کنید). با این حال، نسخه‌های قدیمی‌تر RCS به‌جای پیشوند خط $Log$، از پیشوند توضیح استفاده می‌کنند؛ بنابراین اگر قصد دارید با هر دو نسخهٔ قدیمی و جدید RCS به یک فایل دسترسی داشته باشید، مطمئن شوید که پیشوند توضیح آن با پیشوند خط $Log$ آن مطابقت دارد.

جایگزینی پیش‌فرض کلیدواژه‌ها را روی subst تنظیم می‌کند. تأثیر جایگزینی کلیدواژه در co(1) توضیح داده شده است. دادن یک گزینهٔ صریح -k به co، rcsdiff و rcsmerge این مقدار پیش‌فرض را لغو (override) می‌کند. مراقب rcs -kv باشید، زیرا -kv با co -l ناسازگار است. از rcs -kkv برای بازیابی جایگزینی پیش‌فرض عادی کلیدواژه‌ها استفاده کنید.
بازبینی با شمارهٔ rev را قفل می‌کند. اگر یک شاخه مشخص شود، آخرین بازبینی در آن شاخه را قفل می‌کند. اگر rev ذکر نشود، آخرین بازبینی روی شاخهٔ پیش‌فرض قفل می‌شود. قفل کردن از تغییرات هم‌پوشان و تداخل جلوگیری می‌کند. اگر شخص دیگری از قبل قفل را در اختیار داشته باشد، قفل مانند عملکرد rcs -u شکسته می‌شود (به زیر مراجعه کنید).
قفل بازبینی با شمارهٔ rev را باز می‌کند. اگر یک شاخه مشخص شود، قفل آخرین بازبینی روی آن شاخه را باز می‌کند. اگر rev ذکر نشود، آخرین قفل در اختیار فراخواننده را حذف می‌کند. به‌طور معمول، فقط قفل‌کنندهٔ یک بازبینی می‌تواند قفل آن را باز کند. باز کردن قفل توسط شخص دیگر، باعث شکستن قفل می‌شود. اگر RCS با --with-mailer پیکربندی شده باشد، این کار باعث ارسال یک پیام رایانامه به قفل‌کنندهٔ اصلی می‌شود. این پیام حاوی توضیحی است که از شکنندهٔ قفل درخواست می‌شود. این توضیح با پایان فایل (EOF) یا با خطی که به‌تنهایی حاوی یک . باشد به پایان می‌رسد.
قفل‌گذاری را روی strict (سخت‌گیرانه) تنظیم می‌کند. قفل‌گذاری سخت‌گیرانه به این معناست که مالک یک فایل RCS برای تحویل (checkin) از قفل‌گذاری معاف نیست. این گزینه باید برای فایل‌های اشتراکی استفاده شود.
قفل‌گذاری را روی غیرسخت‌گیرانه (non-strict) تنظیم می‌کند. قفل‌گذاری غیرسخت‌گیرانه به این معناست که مالک یک فایل برای تحویل نیازی به قفل کردن بازبینی ندارد. این گزینه نباید برای فایل‌های اشتراکی استفاده شود. اینکه قفل‌گذاری پیش‌فرض سخت‌گیرانه باشد یا خیر، توسط مدیر سیستم شما تعیین می‌شود، اما معمولاً سخت‌گیرانه است.
پیام گزارش بازبینی rev را با msg جایگزین می‌کند. اگر msg ذکر نشود، مقدار پیش‌فرض آن "*** empty log message ***" خواهد بود..TP -M هنگام شکستن قفل شخص دیگر، ایمیل ارسال نکن. این گزینه برای استفادهٔ عادی در نظر گرفته نشده است؛ بلکه برای برنامه‌هایی است که با روش‌های دیگر به کاربران هشدار می‌دهند و rcs -u را صرفاً به عنوان یک عملیات سطح‌پایین برای شکستن قفل فراخوانی می‌کنند.
نام نمادین name را به شاخه یا بازبینیِ rev اختصاص بده. اگر هر دو مورد : و rev حذف شده باشند، نام نمادین را حذف کن؛ در غیر این صورت، اگر name قبلاً به شمارهٔ دیگری اختصاص داده شده باشد، یک پیام خطا چاپ کن. اگر rev نمادین باشد، پیش از انتساب بسط داده می‌شود. یک rev متشکل از شمارهٔ شاخه که به دنبال آن یک . بیاید، نمایانگر آخرین بازبینی فعلی در آن شاخه است. یک : با rev خالی، نمایانگر آخرین بازبینی فعلی در شاخهٔ پیش‌فرض (معمولاً تنه یا trunk) است. به عنوان مثال، rcs -nname: RCS/* نام name را به آخرین بازبینی فعلیِ تمام فایل RCSهای نام‌برده اختصاص می‌دهد؛ این با rcs -nname:$ RCS/* متفاوت است که name را به شماره‌های بازبینی استخراج‌شده از رشته‌های کلیدواژه در فایل‌های کاری متناظر اختصاص می‌دهد.
مانند -n عمل کن، با این تفاوت که هر انتساب قبلیِ name را بازنویسی و جایگزین می‌کند.
بازبینی‌های مشخص‌شده توسط range را حذف (منسوخ یا “outdate”) می‌کند. محدوده‌ای متشکل از یک شماره بازبینیِ تنها، به معنای همان بازبینی است. محدوده‌ای متشکل از یک شماره شاخه، به معنای آخرین بازبینی در آن شاخه است. محدوده‌ای به شکل rev1:rev2 به معنای بازبینی‌های rev1 تا rev2 در همان شاخه است، :rev به معنای از ابتدای شاخهٔ حاوی rev تا خودِ rev (شامل آن) است، و rev: به معنای از بازبینیِ rev تا انتهای شاخهٔ حاوی rev است. هیچ‌یک از بازبینی‌های منسوخ‌شده نمی‌توانند شاخه یا قفل داشته باشند.
اجرا در حالت بی‌صدا؛ پیام‌های تشخیصی چاپ نشوند.
اجرا به صورت تعاملی، حتی اگر ورودی استاندارد یک ترمینال نباشد.
صفت وضعیت (state) بازبینیِ rev را به state تنظیم کن. اگر rev شمارهٔ یک شاخه باشد، آخرین بازبینی در آن شاخه در نظر گرفته می‌شود. اگر rev مشخص نشده باشد، آخرین بازبینی در شاخهٔ پیش‌فرض در نظر گرفته می‌شود. هر شناسه‌ای برای state پذیرفته می‌شود. مجموعه‌ای از وضعیت‌های کاربردی عبارت است از: Exp (برای آزمایشی)، Stab (برای پایدار)، و Rel (برای منتشرشده). به‌طور پیش‌فرض، ci(1) وضعیت یک بازبینی را روی Exp تنظیم می‌کند.
متن توصیفی را از محتویات file نام‌برده درون فایل RCS می‌نویسد و متن موجود را حذف می‌کند. نام file نمی‌تواند با - آغاز شود. اگر file مشخص نشود، متن را از ورودی استاندارد دریافت می‌کند که با پایان فایل (EOF) یا با خطی که تنها شامل . است خاتمه می‌یابد. در صورتی که امکان تعامل وجود داشته باشد، اعلان متن نمایش داده می‌شود؛ به -I مراجعه کنید. با -i، متن توصیفی حتی در صورت مشخص نشدن -t نیز دریافت می‌شود.
-t-string
متن توصیفی را از رشتهٔ string درون فایل RCS می‌نویسد و متن موجود را حذف می‌کند.
زمان تغییر فایل فایل RCS را حفظ کن، مگر اینکه بازبینی‌ای حذف شود. این گزینه می‌تواند از کامپایل مجدد گسترده ناشی از وابستگی make(1) یک نسخه از فایل کاری به فایل RCS جلوگیری کند. از این گزینه با احتیاط استفاده کنید؛ چرا که می‌تواند کامپایل مجدد را حتی در زمان نیاز متوقف سازد، یعنی هنگامی که تغییر در فایل RCS به معنای تغییر در رشته‌های کلیدواژه در فایل کاری باشد.
شمارهٔ نسخهٔ RCS را چاپ کن.
نسخهٔ n از RCS را شبیه‌سازی کن. برای جزئیات به co(1) مراجعه کنید.
از پسوندهای suffixes برای مشخص کردن فایلهای فایل RCS استفاده کن. برای جزئیات به ci(1) مراجعه کنید.
از zone به عنوان منطقهٔ زمانی پیش‌فرض استفاده کن. این گزینه هیچ اثری ندارد؛ صرفاً برای سازگاری با سایر دستورهای RCS وجود دارد.

حداقل یک گزینهٔ صریح باید مشخص شود، تا از سازگاری با توسعه‌های برنامه‌ریزی‌شده در آینده برای دستور rcs اطمینان حاصل گردد..SH "سازگاری (COMPATIBILITY)" گزینهٔ -brev یک فایل RCS تولید می‌کند که توسط نسخهٔ ۳ یا پیشین RCS قابل تجزیه نیست.

گزینه‌های -ksubst (به‌جز -kkv) یک فایل RCS تولید می‌کنند که توسط نسخهٔ ۴ یا پیشین RCS قابل تجزیه نیست.

از rcs -Vn برای سازگار کردن یک فایل RCS با نسخهٔ n RCS استفاده کنید؛ این کار با دور ریختن اطلاعاتی انجام می‌شود که ممکن است نسخهٔ n را دچار سردرگمی کند.

نسخهٔ ۵٫۵ و پیشین RCS از گزینهٔ -x پشتیبانی نمی‌کند و نیازمند پسوند ,v در انتهای نام یک فایل RCS است.

دستور rcs تقریباً مانند ci(1) به فایل‌ها دسترسی پیدا می‌کند، با این تفاوت که برای همهٔ دسترسی‌ها از کاربر مؤثر (effective user) استفاده می‌کند، در فایل کاری یا دایرکتوری آن نمی‌نویسد، و حتی فایل کاری را نمی‌خواند مگر اینکه شمارهٔ بازبینیِ $ مشخص شده باشد.

گزینه‌هایی که با فاصله از هم جدا شده و به ابتدای فهرست آرگومان‌ها افزوده می‌شوند. یک بک‌اسلش فاصله‌های درون یک گزینه را گریزدهی (escape) می‌کند. گزینه‌های RCSINIT به ابتدای فهرست آرگومان‌های اکثر دستورهای RCS اضافه می‌شوند. گزینه‌های مفید RCSINIT شامل -q، -V، -x و -z هستند.
در حالت عادی برای افزایش سرعت، اگر اندازهٔ فایل RCS کمتر از memory-limit باشد، دستورها آن را در حافظه نگاشت (memory map) کرده یا درون حافظه کپی می‌کنند؛ این مقدار در حال حاضر به‌صورت پیش‌فرض «نامحدود» (unlimited) است. در غیر این صورت (یا اگر روش‌های سریع اولیه با شکست مواجه شوند)، دستورها به استفاده از روال‌های ورودی/خروجی استاندارد بازمی‌گردند. می‌توانید حد حافظه را با تنظیم RCS_MEM_LIMIT روی یک مقدار عددی lim (برحسب کیلوبایت) تعیین کنید. مقدار خالی بدون هیچ پیامی نادیده گرفته می‌شود. به‌عنوان یک اثر جانبی، تعیین RCS_MEM_LIMIT مانع از بازگشت به روال‌های کندتر می‌شود.
نام دایرکتوری موقت. اگر تنظیم نشده باشد، متغیرهای محیطی TMP و TEMP به‌جای آن بررسی می‌شوند و نخستین مقدار یافت‌شده در نظر گرفته می‌شود؛ اگر هیچ‌کدام از آن‌ها تنظیم نشده باشند، یک پیش‌فرض وابسته به سیستم میزبان به کار می‌رود که معمولاً /tmp است.

نام فایل RCS و بازبینی‌های منسوخ‌شده در خروجی عیب‌یابی نوشته می‌شوند. وضعیت خروج صفر است اگر و تنها اگر تمام عملیات‌ها با موفقیت انجام شده باشند. نویسنده: Walter F. Tichy.
بازبینی صفحه راهنما: 5.10.1؛ تاریخ انتشار: 2022-02-03.
حق نشر © 2010-2022 Thien-Thi Nguyen.
حق نشر © 1990, 1991, 1992, 1993, 1994, 1995.SH "شناسایی (IDENTIFICATION)" Paul Eggert.
حق نشر © 1982, 1988, 1989 Walter F. Tichy.

co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5).

Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.

مستندات کامل RCS به صورت یک کتابچه راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های info(1) و RCS به درستی در سیستم شما نصب شده باشند، دستور

info rcs

باید امکان دسترسی به راهنمای کامل را برای شما فراهم کند. علاوه بر این، صفحه اصلی وب‌گاه RCS:

http://www.gnu.org/software/rcs

دارای اخبار و پیوندهایی به جدیدترین انتشار، پایگاه توسعه و موارد دیگر است.

یک رخداد فاجعه‌بار (مانند فروپاشی سیستم) می‌تواند باعث شود که RCS یک فایل سمافور بر جای بگذارد که موجب می‌شود فراخوانی‌های بعدی RCS ادعا کنند که فایل RCS در حال استفاده است. برای رفع این مشکل، فایل سمافور را حذف کنید. نام یک فایل سمافور معمولاً با , آغاز شده یا با _ پایان می‌یابد.

جداکننده بازه‌های بازبینی در گزینه -o پیش‌تر به جای : کاراکتر - بود، اما این امر هنگامی که نام‌های نمادین حاوی - باشند، منجر به سردرگمی می‌شود. برای سازگاری با نسخه‌های گذشته، rcs -o همچنان از جداکننده قدیمی - پشتیبانی می‌کند، اما در مورد این استفاده منسوخ‌شده هشدار می‌دهد.

نام‌های نمادین نیازی نیست به بازبینی‌ها یا شاخه‌های موجود ارجاع داشته باشند. به عنوان مثال، گزینه -o نام‌های نمادین را برای بازبینی‌های منسوخ‌شده حذف نمی‌کند؛ شما باید از -n برای حذف نام‌ها استفاده کنید.

2022-02-03 GNU RCS 5.10.1