GIT-CVSEXPORTCOMMIT(1) دستورات عمومی کاربر GIT-CVSEXPORTCOMMIT(1)

git-cvsexportcommit - خروجی گرفتن یک کامیت به مخزن CVS

git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d <cvsroot>]
        [-w <cvs-workdir>] [-W] [-f] [-m <msgprefix>] [<parent-commit>] <commit-id>

یک کامیت را از گیت به یک نسخه تحویل‌گرفته‌شده (checkout) از CVS صادر می‌کند و ادغام وصله‌ها (patches) از یک مخزن گیت به یک مخزن CVS را آسان‌تر می‌سازد.

نام نسخه تحویل‌گرفته‌شده CVS را با استفاده از سوییچ -w مشخص کنید یا دستور را از ریشه کپی کاری CVS اجرا نمایید. در حالت دوم، GIT_DIR باید تعریف شده باشد. مثال‌های زیر را ببینید.

این دستور بیشترین تلاش را برای انجام یک عملیات ایمن به کار می‌بندد؛ بررسی می‌کند که فایل‌ها در نسخه تحویل‌گرفته‌شده CVS تغییر نکرده و به‌روز باشند، و به طور پیش‌فرض کامیت خودکار انجام نمی‌دهد.

از افزودن و حذف فایل‌ها، و همچنین کامیت‌هایی که بر فایل‌های دودویی (binary) تأثیر می‌گذارند پشتیبانی می‌کند.

اگر کامیت یک کامیت ادغام (merge commit) باشد، باید به git cvsexportcommit بگویید که مجموعه تغییرات باید در برابر کدام والد اعمال شود.

-c

در صورتی که وصله (patch) بدون مشکل اعمال شود، کامیت را به صورت خودکار انجام می‌دهد. اگر اعمال هر بخش از وصله (hunk) با شکست مواجه شود یا مشکلات دیگری رخ دهد، کامیت نخواهد کرد.

-p

هنگام اعمال وصله‌ها بسیار دقیق و سخت‌گیرانه (pedantic) عمل می‌کند. دستور patch را با --fuzz=0 فراخوانی می‌کند.

-a

اطلاعات پدیدآورنده (authorship) را اضافه می‌کند. خط پدیدآورنده (Author) و کامیت‌کننده (Committer - در صورتی که با پدیدآورنده متفاوت باشد) را به پیام اضافه می‌کند.

-d

یک CVSROOT جایگزین برای استفاده تعیین می‌کند. این پارامتر با پارامتر -d در CVS مطابقت دارد. معمولاً کاربران نیازی به تنظیم این گزینه ندارند، مگر در حالتی که از CVS به شکل نامتقارن استفاده شود.

-f

ادغام را تحمیل می‌کند، حتی اگر فایل‌ها به‌روز نباشند.

-P

کامیت والد را تحمیل می‌کند، حتی اگر والد مستقیم نباشد.

-m

پیشوند ارائه‌شده را به ابتدای پیام کامیت اضافه می‌کند. برای سری‌های وصله (patch series) و موارد مشابه مفید است.

-u

پیش از تلاش برای صدور، فایل‌های تحت تأثیر را از مخزن CVS به‌روزرسانی می‌کند.

-k

پیش از اعمال وصله، بسط کلیدواژه‌های CVS را در نسخه تحویل‌گرفته‌شده کاری CVS معکوس می‌کند (برای مثال $Revision: 1.2.3.4$ به $Revision$ تبدیل می‌شود).

-w

محل نسخه تحویل‌گرفته‌شده CVS را برای استفاده در صدور مشخص می‌کند. اگر دایرکتوری فعلی درون یک مخزن گیت باشد، این گزینه نیازی به تنظیم بودن GIT_DIR پیش از اجرا ندارد. مقدار پیش‌فرض، مقدار cvsexportcommit.cvsdir است.

-W

به cvsexportcommit اعلام می‌کند که دایرکتوری کاری فعلی نه تنها یک نسخه تحویل‌گرفته‌شده گیت، بلکه نسخه تحویل‌گرفته‌شده CVS نیز هست. بنابراین، گیت پیش از ادامه کار، دایرکتوری کاری را به کامیت والد بازنشانی خواهد کرد.

-v

نمایش با جزئیات کامل (Verbose).

cvsexportcommit.cvsdir

مکان پیش‌فرض نسخه تحویل‌گرفته‌شده CVS برای استفاده در صدور کامیت.

ادغام یک وصله در CVS

$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cvsexportcommit -v <commit-sha1>
$ cvs commit -F .msg <files>

ادغام یک وصله در CVS (گزینه‌های -c و -w). دایرکتوری کاری درون مخزن گیت قرار دارد

$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>

ادغام خودکار وصله‌های در انتظار در CVS — تنها در صورتی که واقعاً می‌دانید چه کاری انجام می‌دهید

$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v

git(1), cvs(1)

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0