Git

名稱

git-cvsexportcommit - 將單一 commit 匯出至 CVS 檢出

概要

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

描述

將 Git 中的 commit 匯出至 CVS 檢出,使其更容易將來自 Git 儲存庫的修補程式合併到 CVS 儲存庫中。

使用 -w 參數指定 CVS 檢出的名稱,或從 CVS 工作副本的根目錄執行。在後一種情況下,必須定義 GIT_DIR。請參閱以下範例。

它會盡力做到安全,它會檢查 CVS 檢出中的檔案是否未變更且為最新狀態,並且預設不會自動提交。

支援檔案新增、移除和影響二進位檔案的 commit。

如果 commit 是合併 commit,則必須告訴 *git cvsexportcommit* 變更集應針對哪個父系進行。

選項

-c

如果修補程式順利套用,則自動提交。如果任何程式碼塊無法套用或有其他問題,則不會提交。

-p

在套用修補程式時要吹毛求疵(偏執)。使用 --fuzz=0 叫用 patch。

-a

新增作者資訊。將作者行和提交者(如果與作者不同)新增至訊息。

-d

設定要使用的替代 CVSROOT。這對應於 CVS -d 參數。通常,使用者不會想要設定此參數,除非以不對稱方式使用 CVS。

-f

即使檔案不是最新狀態,仍強制合併。

-P

強制父系 commit,即使它不是直接的父系。

-m

在 commit 訊息前面加上提供的字首。適用於修補程式系列等。

-u

在嘗試匯出之前,從 CVS 儲存庫更新受影響的檔案。

-k

在套用修補程式之前,反轉工作 CVS 檢出中的 CVS 關鍵字展開(例如,$Revision: 1.2.3.4$ 變成 $Revision$)。

-w

指定要用於匯出的 CVS 檢出位置。如果目前目錄位於 Git 儲存庫中,則此選項不需要在執行之前設定 GIT_DIR。預設值為 *cvsexportcommit.cvsdir*。

-W

告訴 cvsexportcommit 目前的工作目錄不僅是 Git 檢出,也是 CVS 檢出。因此,Git 將在繼續操作之前將工作目錄重設為父系 commit。

-v

詳細模式。

設定

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 儲存庫中
	$ 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

屬於 git[1] 套件的一部分

scroll-to-top