日本語 ▾ トピック ▾ 最新バージョン ▾ git-cvsexportcommit は 2.35.0 で最終更新されました

名前

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

パッチがクリーンに適用された場合、自動的にコミットします。ハンクの適用に失敗したり、その他の問題があった場合はコミットしません。

-p

パッチを適用するときに厳密 (偏執的) になります。`--fuzz=0` を指定して `patch` を呼び出します。

-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

現在の作業ディレクトリが Git チェックアウトであるだけでなく、CVS チェックアウトでもあることを cvsexportcommit に伝えます。したがって、Git は続行する前に作業ディレクトリを親コミットにリセットします。

-v

詳細表示。

設定

cvsexportcommit.cvsdir

エクスポートに使用する CVS チェックアウトのデフォルトの場所。

CVS に 1 つのパッチをマージする
$ export GIT_DIR=~/project/.git
$ cd ~/project_cvs_checkout
$ git cvsexportcommit -v <commit-sha1>
$ cvs commit -F .msg <files>
CVS に 1 つのパッチをマージする (-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