SYNOPSIS
git cvsexportcommit [-h] [-u] [-v] [-c] [-P] [-p] [-a] [-d <cvsroot>] [-w <cvs-workdir>] [-W] [-f] [-m <msgprefix>] [<parent-commit>] <commit-id>
DESCRIPTION
コミットをGitからCVSチェックアウトにエクスポートし、GitリポジトリからCVSリポジトリへのパッチのマージを容易にします。
-w
スイッチを使用してCVSチェックアウトの名前を指定するか、CVS作業コピーのルートから実行します。後者の場合、GIT_DIRを定義する必要があります。以下の例を参照してください。
安全寄りに最大限振って、CVSチェックアウトでファイルが変更されておらず、最新であることを確認したら、デフォルトでは自動コミットしません。
バイナリファイルに影響するファイルの追加、削除、およびコミットをサポートします。
コミットがマージコミットの場合は、あなたは git cvsexportcommit
にchangesetの対象となる親を指定する必要があります。
OPTIONS
-
-c
-
パッチが正常に適用された場合、自動的にコミットします。ハンクが適用されない場合、またはその他の問題が発生した場合、コミットされません。
-
-p
-
パッチを適用するときは、pedantic(衒学的)(paranoid;病的なほど疑り深い)にする。
--fuzz=0
でpatchを呼び出します。 -
-a
-
著者情報を追加します。作者行と(作成者と異なる場合)コミッターをメッセージに追加します。
-
-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
-
おしゃべりにします。
CONFIGURATION
- cvsexportcommit.cvsdir
-
エクスポートに使用するCVSチェックアウトのデフォルトの場所。
EXAMPLES
- 1つのパッチをCVSにマージします
-
$ export GIT_DIR=~/project/.git $ cd ~/project_cvs_checkout $ git cvsexportcommit -v <commit-sha1> $ cvs commit -F .msg <files>
-
1つのパッチを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
Part of the git(1) suite