?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
git-cvsexportcommit - 將一次提交導出到 CVS 簽出
git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d cvsroot] [-w cvsworkdir] [-W] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID
將 Git 中的提交導出到 CVS 簽出,從而更容易將 Git 存儲庫中的修補程序合并到 CVS 存儲庫中。
使用-w開關指定 CVS 簽出的名稱,或從 CVS 工作副本的根目錄執(zhí)行。在后一種情況下,必須定義 GIT_DIR。看下面的例子。
它盡最大努力去做安全的事情,它會檢查 CVS 結帳中的文件是否保持不變并且是最新的,并且默認情況下它不會自動提交。
支持影響二進制文件的文件添加,刪除和提交。
如果提交是合并提交,則必須告訴git cvsexportcommit
應該對變更集進行的操作。
-c
如果干凈地補丁應用,自動提交。如果任何人不能應用或出現(xiàn)其他問題,它將不會提交。
-p
應用補丁時要迂腐(偏執(zhí)狂)。使用--fuzz = 0調(diào)用修補程序
-a
添加作者信息。將作者行和提交者(如果與作者不同)添加到消息中。
-d
設置一個替代的 CVSROOT 使用。這對應于 CVS -d參數(shù)。通常用戶不想設置它,除非以非對稱方式使用 CVS 。
-f
即使文件不是最新的,也強制合并。
-P
強制雙親提交,即使它不是直接雙親。
-m
用提供的前綴預先提交提交消息。用于補丁系列等。
-u
嘗試導出之前,從 CVS 存儲庫更新受影響的文件。
-k
在應用修補程序之前,在工作 CVS 簽出時反向 CVS 關鍵字擴展(例如$ Revision:1.2.3.4 $變?yōu)? Revision $)。
-w
指定用于導出的 CVS 簽出的位置。如果當前目錄位于 Git 存儲庫中,則此選項不需要在執(zhí)行前設置 GIT_DIR。默認值是cvsexportcommit.cvsdir
。的值。
-W
告知 cvsexportcommit,當前的工作目錄不僅是一個 Git 簽出,還包括 CVS 簽出。因此,在繼續(xù)之前,Git 會將工作目錄重置為父提交。
-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 Repo 內(nèi)
$ 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