?
This document uses PHP Chinese website manual Release
git-cvsexportcommit - 將一次提交導(dǎo)出到 CVS 簽出
git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot] [-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID
將 Git 中的提交導(dǎo)出到 CVS 簽出,從而更容易將 Git 存儲(chǔ)庫中的修補(bǔ)程序合并到 CVS 存儲(chǔ)庫中。
使用-w開關(guān)指定 CVS 簽出的名稱,或從 CVS 工作副本的根目錄執(zhí)行。在后一種情況下,必須定義 GIT_DIR??聪旅娴睦?。
它盡最大努力去做安全的事情,它會(huì)檢查 CVS 結(jié)帳中的文件是否保持不變并且是最新的,并且默認(rèn)情況下它不會(huì)自動(dòng)提交。
支持影響二進(jìn)制文件的文件添加,刪除和提交。
如果提交是合并提交,則必須告訴git cvsexportcommit
應(yīng)該對(duì)變更集進(jìn)行的操作。
-c
如果干凈地補(bǔ)丁應(yīng)用,自動(dòng)提交。如果任何人不能應(yīng)用或出現(xiàn)其他問題,它將不會(huì)提交。
-p
應(yīng)用補(bǔ)丁時(shí)要迂腐(偏執(zhí)狂)。使用--fuzz = 0調(diào)用修補(bǔ)程序
-a
添加作者信息。將作者行和提交者(如果與作者不同)添加到消息中。
-d
設(shè)置一個(gè)替代的 CVSROOT 使用。這對(duì)應(yīng)于 CVS -d參數(shù)。通常用戶不想設(shè)置它,除非以非對(duì)稱方式使用 CVS 。
-f
即使文件不是最新的,也強(qiáng)制合并。
-P
強(qiáng)制雙親提交,即使它不是直接雙親。
-m
用提供的前綴預(yù)先提交提交消息。用于補(bǔ)丁系列等。
-u
嘗試導(dǎo)出之前,從 CVS 存儲(chǔ)庫更新受影響的文件。
-k
在應(yīng)用修補(bǔ)程序之前,在工作 CVS 簽出時(shí)反向 CVS 關(guān)鍵字?jǐn)U展(例如$ Revision:1.2.3.4 $變?yōu)? Revision $)。
-w
指定用于導(dǎo)出的 CVS 簽出的位置。如果當(dāng)前目錄位于 Git 存儲(chǔ)庫中,則此選項(xiàng)不需要在執(zhí)行前設(shè)置 GIT_DIR。默認(rèn)值是cvsexportcommit.cvsdir
。的值。
-W
告知 cvsexportcommit,當(dāng)前的工作目錄不僅是一個(gè) Git 簽出,還包括 CVS 簽出。因此,在繼續(xù)之前,Git 會(huì)將工作目錄重置為父提交。
-v
Verbose.
cvsexportcommit.cvsdir
用于導(dǎo)出的 CVS 簽出的默認(rèn)位置。
將一個(gè)補(bǔ)丁合并到 CVS 中
$ export GIT_DIR=~/project/.git $ cd ~/project_cvs_checkout $ git cvsexportcommit -v <commit-sha1>$ cvs commit -F .msg <files>
將一個(gè)補(bǔ)丁合并到 CVS 中(-c和-w選項(xiàng))。工作目錄位于 Git Repo 內(nèi)
$ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1>
自動(dòng)將待處理的補(bǔ)丁合并到 CVS 中 - 只有在您確實(shí)知道自己在做什么的情況下
$ export GIT_DIR=~/project/.git $ cd ~/project_cvs_checkout $ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v