名稱

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>

描述

將 Git 中的提交匯出到 CVS 檢出,從而更輕鬆地將補丁從 Git 倉庫合併到 CVS 倉庫。

使用 -w 開關指定 CVS 檢出的名稱,或在 CVS 工作副本的根目錄中執行。在後一種情況下,必須定義 GIT_DIR。參見下面的示例。

它會盡力進行安全操作,它會檢查 CVS 檢出中的檔案是否未更改且是最新的,並且預設情況下不會自動提交。

支援檔案新增、刪除以及影響二進位制檔案的提交。

如果提交是合併提交,則必須告訴 git cvsexportcommit 應該針對哪個父級進行更改集。

選項

-c

如果補丁應用乾淨,則自動提交。如果任何 hunk 應用失敗或存在其他問題,則不會提交。

-p

應用補丁時要嚴格(偏執)。呼叫 patch 時帶上 --fuzz=0

-a

新增作者資訊。將 Author 行和 Committer(如果與 Author 不同)新增到訊息中。

-d

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

-f

即使檔案不是最新的,也強制合併。

-P

強制指定父提交,即使它不是直接父提交。

-m

在提交訊息前加上指定的字首。適用於補丁系列等。

-u

嘗試匯出前,從 CVS 倉庫更新受影響的檔案。

-k

在應用補丁之前,在 CVS 工作檢出中反轉 CVS 關鍵字擴充套件(例如,$Revision: 1.2.3.4$ 變為 $Revision$)。

-w

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

-W

告訴 cvsexportcommit 當前工作目錄不僅是 Git 檢出,也是 CVS 檢出。因此,Git 將在繼續之前將工作目錄重置為父提交。

-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