簡體中文 ▾
主題 ▾
最新版本 ▾ git-cvsexportcommit 最後更新於 2.35.0
git-cvsexportcommit 手冊的更改
設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.35.1 → 2.50.1 無更改
-
2.35.0
2022-01-24
- 2.1.4 → 2.34.8 無更改
-
2.0.5
2014-12-17
概要
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
-
詳細模式。
示例
- 將一個補丁合併到 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