'\" t .\" Title: git-cvsimport .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: Git Manual .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-CVSIMPORT" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-cvsimport \- نجات و استخراج داده‌ها از سامانه مدیریت نسخه دیگر (CVS) .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit cvsimport\fR [\-o ] [\-h] [\-v] [\-d ] [\-A ] [\-p ] [\-P ] [\-C ] [\-z ] [\-i] [\-k] [\-u] [\-s ] [\-a] [\-m] [\-M ] [\-S ] [\-L ] [\-r ] [\-R] [] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp \fBهشدار:\fR دستور \fBgit\fR \fBcvsimport\fR از نسخه ۲ cvsps استفاده می‌کند که منسوخ تلقی می‌شود؛ این دستور با نسخه ۳ و نسخه‌های بعدی cvsps کار نمی‌کند\&. اگر در حال انجام یک‌باره واردسازی مخزن CVS هستید، استفاده از \m[blue]\fBcvs2git\fR\m[]\&\s-2\u[1]\d\s+2 یا \m[blue]\fBcvs\-fast\-export\fR\m[]\&\s-2\u[2]\d\s+2 را مد نظر قرار دهید\&. .sp یک مخزن CVS را به گیت وارد می‌کند\&. این دستور یا یک مخزن جدید ایجاد می‌کند یا به طور افزایشی داده‌ها را به یک مخزن موجود وارد می‌نماید\&. .sp تقسیم گزارش CVS به مجموعه‌وصله‌ها توسط \fIcvsps\fR انجام می‌شود\&. حداقل نسخه ۲\&.۱ مورد نیاز است\&. .sp \fBهشدار:\fR در برخی شرایط، واردسازی به نتایج نادرستی منجر می‌شود\&. لطفاً برای اطلاعات بیشتر بخش «مشکلات (ISSUES)» را ببینید\&. .sp شما \fBهرگز\fR نباید کارهای خودتان را روی شاخه‌هایی که توسط \fIgit cvsimport\fR ایجاد می‌شوند انجام دهید\&. به طور پیش‌فرض، واردسازی اولیه یک شاخه «master» از شاخه اصلی مخزن CVS ایجاد و پر می‌کند که آزاد هستید روی آن کار کنید؛ پس از آن، باید واردسازی‌های افزایشی یا هر شاخه CVS را خودتان با \fIgit merge\fR ادغام کنید\&. توصیه می‌شود یک ریموت نام‌گذاری‌شده را از طریق \-r مشخص کنید تا شاخه‌های ورودی تفکیک و محافظت شوند\&. .sp اگر قصد دارید یک مخزن عمومی مشترک راه‌اندازی کنید که همه توسعه‌دهندگان بتوانند روی آن بخوانند/بنویسند، یا اگر می‌خواهید از \fBgit-cvsserver\fR(1) استفاده کنید، احتمالاً تمایل دارید یک کلون خام (bare clone) از مخزن واردشده بسازید و از آن کلون به عنوان مخزن مشترک استفاده کنید\&. \fBgitcvs-migration\fR(7) را ببینید\&. .SH "گزینه‌ها (OPTIONS)" .PP \-v .RS 4 پرگویی: به \fIcvsimport\fR اجازه می‌دهد گزارش دهد که در حال انجام چه کاری است\&. .RE .PP \-d .RS 4 ریشه بایگانی CVS\&. می‌تواند محلی (یک مسیر ساده) یا از راه دور باشد؛ در حال حاضر، فقط روش‌های دسترسی :local:، :ext: و :pserver: پشتیبانی می‌شوند\&. در صورت عدم تعیین، \fIgit cvsimport\fR تلاش می‌کند آن را از \fBCVS/Root\fR بخواند\&. اگر چنین فایلی وجود نداشته باشد، متغیر محیطی \fBCVSROOT\fR را بررسی می‌کند\&. .RE .PP .RS 4 ماژول CVS که می‌خواهید وارد کنید\&. نسبت به \&. در صورت عدم تعیین، \fIgit cvsimport\fR تلاش می‌کند آن را از \fBCVS/Repository\fR بخواند\&. .RE .PP \-C .RS 4 مخزن گیت برای واردسازی\&. اگر دایرکتوری وجود نداشته باشد، ایجاد خواهد شد\&. پیش‌فرض، دایرکتوری فعلی است\&. .RE .PP \-r .RS 4 ریموت گیت برای وارد کردن این مخزن CVS به آن\&. تمام شاخه‌های CVS را به remotes// منتقل می‌کند، مشابه روشی که \fIgit clone\fR به طور پیش‌فرض از \fIorigin\fR استفاده می‌کند\&. .RE .PP \-o .RS 4 هنگامی که هیچ ریموتی مشخص نشده باشد (از طریق \-r)، شاخه \fBHEAD\fR از CVS به شاخه \fIorigin\fR درون مخزن گیت وارد می‌شود، زیرا \fBHEAD\fR پیشاپیش معنای خاصی برای گیت دارد\&. هنگامی که یک ریموت مشخص شود، شاخه \fBHEAD\fR به صورت remotes//master نام‌گذاری می‌شود که بازتابی از رفتار \fIgit clone\fR است\&. اگر می‌خواهید به شاخه متفاوتی وارد کنید از این گزینه استفاده نمایید\&. .sp از \fI\-o master\fR برای ادامه واردسازی که در ابتدا با ابزار قدیمی cvs2git انجام شده بود استفاده کنید\&. .RE .PP \-i .RS 4 فقط واردسازی: پس از واردسازی checkout انجام ندهید\&. این گزینه تضمین می‌کند که دایرکتوری کاری و ایندکس دست‌نخورده باقی بمانند و در صورت عدم وجود، آن‌ها را ایجاد نمی‌کند\&. .RE .PP \-k .RS 4 حذف کلمات کلیدی (Kill keywords): فایل‌ها را با \fI\-kk\fR از بایگانی CVS استخراج می‌کند تا از ایجاد تغییرات پر سر و صدا جلوگیری شود\&. به شدت توصیه می‌شود، اما به طور پیش‌فرض غیرفعال است تا سازگاری با درخت‌های واردشده اولیه حفظ گردد\&. .RE .PP \-u .RS 4 تبدیل زیرخط‌ها (underscores) در نام‌های تگ و شاخه به نقطه\&. .RE .PP \-s .RS 4 جایگزینی نویسه «/» در نام‌های شاخه با .RE .PP \-p .RS 4 گزینه‌های اضافی برای cvsps\&. گزینه‌های \fB\-u\fR و \fI\-A\fR ضمنی هستند و نباید در اینجا استفاده شوند\&. .sp اگر نیاز به ارسال چندین گزینه دارید، آن‌ها را با کاما جدا کنید\&. .RE .PP \-z .RS 4 ارسال ضریب تلورانس زمانی (fuzz factor) به cvsps، بر حسب ثانیه\&. اگر تنظیم نشود، پیش‌فرض cvsps مقدار ۳۰۰ ثانیه است\&. .RE .PP \-P .RS 4 به جای فراخوانی cvsps، فایل خروجی ارائه‌شده cvsps را بخوانید\&. برای اشکال‌زدایی یا زمانی که cvsps در خارج از cvsimport مدیریت می‌شود مفید است\&. .RE .PP \-m .RS 4 تلاش برای تشخیص ادغام‌ها بر اساس پیام کامیت\&. این گزینه عبارات باقاعده پیش‌فرضی را فعال می‌کند که تلاش می‌کنند نام شاخه مبدأ را از پیام کامیت دریافت کنند\&. .RE .PP \-M .RS 4 تلاش برای تشخیص ادغام‌ها بر اساس پیام کامیت با یک عبارت باقاعده سفارشی\&. می‌تواند به همراه \fB\-m\fR برای فعال کردن عبارات باقاعده پیش‌فرض نیز استفاده شود\&. باید اسلش‌های رو به جلو را اسکیپ کنید\&. .sp عبارت باقاعده باید نام شاخه مبدأ را در $1 دریافت کند\&. .sp این گزینه می‌تواند چندین بار برای ارائه چندین عبارت باقاعده تشخیص استفاده شود\&. .RE .PP \-S .RS 4 نادیده گرفتن مسیرهای منطبق بر عبارت باقاعده\&. .RE .PP \-a .RS 4 واردسازی همه کامیت‌ها، از جمله کامیت‌های اخیر\&. cvsimport به طور پیش‌فرض از کامیت‌هایی که مهر زمانی آن‌ها کمتر از ۱۰ دقیقه پیش است صرف‌نظر می‌کند\&. .RE .PP \-L .RS 4 محدود کردن تعداد کامیت‌های واردشده\&. راهکاری موقت برای مواردی که cvsimport دچار نشت حافظه می‌شود\&. .RE .PP \-A .RS 4 به طور پیش‌فرض CVS هنگام نوشتن گزارش‌های کامیت خود از نام کاربری یونیکس استفاده می‌کند\&. استفاده از این گزینه و یک فایل author\-conv\-file نام ثبت‌شده در CVS را به نام نویسنده، رایانامه و منطقه زمانی اختیاری نگاشت می‌کند: .sp .if n \{\ .RS 4 .\} .nf exon=Andreas Ericsson spawn=Simon Pawn America/Chicago .fi .if n \{\ .RE .\} .sp دستور \fIgit cvsimport\fR باعث می‌شود به نظر برسد که مقادیر GIT_AUTHOR_NAME و GIT_AUTHOR_EMAIL آن نویسندگان از ابتدا به درستی تنظیم شده بوده‌اند\&. اگر یک منطقه زمانی مشخص شود، انحراف مربوطه روی GIT_AUTHOR_DATE اعمال خواهد شد\&. .sp برای راحتی، هر بار که گزینه \fI\-A\fR ارائه می‌شود این داده‌ها در \fB$GIT_DIR/cvs\-authors\fR ذخیره شده و هر بار که \fIgit cvsimport\fR اجرا می‌گردد از همان فایل خوانده می‌شوند\&. .sp اگر قصد دارید بعداً تغییرات را با \fIgit cvsexportcommit\fR مجدداً به CVS صادر کنید، استفاده از این ویژگی توصیه نمی‌شود\&. .RE .PP \-R .RS 4 ایجاد یک فایل \fB$GIT_DIR/cvs\-revisions\fR حاوی نگاشتی از شماره‌های ویرایش CVS به شناسه‌های کامیت تازه ایجادشده گیت\&. فایل تولیدشده شامل یک خط به ازای هر جفت (filename, revision) واردشده خواهد بود؛ هر خط به این شکل خواهد بود: .sp .if n \{\ .RS 4 .\} .nf src/widget\&.c 1\&.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7 .fi .if n \{\ .RE .\} .sp اگر فایل از قبل موجود باشد، داده‌های ویرایش به آن اضافه می‌شوند تا هنگام واردسازی‌های افزایشی استفاده شوند\&. .sp اگر شماره‌های ویرایش CVS را در پیام‌های کامیت، سامانه‌های ردیابی باگ، بایگانی‌های رایانامه و نظایر آن ذخیره کرده‌اید، این گزینه ممکن است مفید باشد\&. .RE .PP \-h .RS 4 چاپ یک پیام خلاصه کاربرد و خروج\&. .RE .SH "خروجی (OUTPUT)" .sp اگر \fB\-v\fR مشخص شده باشد، اسکریپت گزارش می‌دهد که در حال انجام چه کاری است\&. .sp در غیر این صورت، موفقیت به سبک یونیکس نشان داده می‌شود، یعنی به سادگی با خروج با وضعیت صفر\&. .SH "مشکلات (ISSUES)" .sp مشکلات مربوط به برچسب‌های زمانی: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر برچسب‌های زمانی کامیت‌ها در مخزن CVS به اندازه کافی پایدار نباشند که برای ترتیب‌بندی کامیت‌ها استفاده شوند، تغییرات ممکن است با ترتیب نادرست نشان داده شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر هر فایلی بیش از یک بار با «cvs import» وارد شده باشد (مثلاً وارد کردن بیش از یک انتشار ارائه‌دهنده)، شاخه HEAD حاوی محتوای نادرست خواهد بود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر ترتیب برچسب‌های زمانی فایل‌های مختلف با ترتیب ویرایش‌ها درون بازه زمانی تطبیق کامیت تداخل پیدا کند، ممکن است ترتیب کامیت‌ها اشتباه باشد\&. .RE .sp مشکلات مربوط به شاخه‌ها: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} شاخه‌هایی که هیچ کامیتی روی آن‌ها انجام نشده باشد وارد نمی‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تمام فایل‌ها از نقطه انشعاب به یک شاخه اضافه می‌شوند حتی اگر هرگز در CVS اضافه نشده باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} این مورد برای فایل‌هایی صدق می‌کند که به شاخه مبدأ اضافه شده‌اند \fBپس از\fR آنکه شاخه فرزند ایجاد شده بود: اگر قبلاً هیچ کامیتی روی شاخه فرزند انجام نشده باشد، آنها به اشتباه در گیت به شاخه فرزند اضافه می‌شوند\&. .RE .sp مشکلات مربوط به برچسب‌ها (tags): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} چندین برچسب روی یک ویرایش یکسان وارد نمی‌شوند\&. .RE .sp اگر شک دارید که هر یک از این مشکلات ممکن است برای مخزنی که می‌خواهید وارد کنید پیش بیاید، استفاده از cvs2git را مد نظر قرار دهید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ابزار cvs2git (بخشی از cvs2svn)، \fBhttps://subversion\&.apache\&.org\fR .RE .SH "GIT" .sp بخشی از مجموعه \fBgit\fR(1) .SH "نکات (NOTES)" .IP " 1." 4 cvs2git .RS 4 \%http://cvs2svn.tigris.org/cvs2git.html .RE .IP " 2." 4 cvs-fast-export .RS 4 \%https://gitlab.com/esr/cvs-fast-export .RE