1つのブランチのみを保持し、タグを保持したくない場合、これは簡単です。シンボルに一致する最初のルールが使用されるため、含めるブランチを指定してから、他のすべてを除外します。
cvs2svn --force-branch=mybranch --exclude='.*' ...
ブランチだけでなく、できるだけ多くのタグも含めたい場合は、少し注意が必要です。すべてのタグの名前を必ずしも知っているだけでなく、除外されたブランチに依存するタグを含めることもできません。この場合、-write-symbol-infoおよび--symbol-hintsオプションを使用するのが最も簡単です。
cvs2svn --write-symbol-info=symbol-info.out --passes=1:3 ...
これにより、すべてのCVSシンボルに関する情報を含む「symbol-info.out」というファイルが作成されます。エディターでこのファイルを開き、除外するブランチに対応するすべての行を見つけて、それらの行の3番目の列を「exclude」という単語に変更します。含めるブランチの行の3番目の列に「branch」という単語が含まれていることと、その4番目の列が最終的に到達するパスであることを確認してください。
ここで、パス3から開始し、編集したsymbol-infoファイルをシンボルヒントファイルとして使用して、cvs2svnを再度実行します。
cvs2svn --symbol-hints=symbol-info.out --passes=3 ...
次のような多くのエラーが発生します。
ERROR: ExcludedSymbol('FOO_BRANCH') cannot be excluded because the following symbols depend on it:
BAR_TAG
BAZ_TAG
ここでエディターに戻り、リストされているタグ(例ではBAR_TAGとBAZ_TAG)も除外するように変更してから、pass3を再度実行してみてください。この手順は数回繰り返す必要があるかもしれませんが、pass3は非常に高速に実行されるため、面倒なことではありません。
pass3をエラーなしで完了したら、残りの変換を実行します。
cvs2svn --symbol-hints=symbol-info.out --passes=4: ...