CVS でファイルをブランチにインポートする方法

CVSで大量のファイルをブランチだけにインポート( cvs import )する方法を紹介します。

これがベストなやり方か分りませんが、コミュニケーション可能な少数のメンバーだけで使うなら(詳細後述)、ひとまず目的は達成できます。なお、少数のファイルを追加する場合や、大量でも階層を下らなくても良い場合、cvs add した方が簡単です。

インポート手順

1.ブランチ番号とブランチ名を指定してインポート

インポートしたいファイルが格納してある最上位のディレクトリに移動し、以下のコマンドを実行する。

cvs -d ~/repository import -b 1.1.3 mymodule/newfiles branch release_tag
  • -b で指定するブランチ番号は、デフォルトが 1.1.1 なので、それ以外の、最後が奇数の番号を付ける。(ここでは 1.1.3。)
  • 「branch」は、インポート先のブランチ名

2.インポート先ブランチの作業ディレクトリで update -d

インポート先のブランチの作業ディレクトリに移動し、以下のコマンドを実行すると、インポートしたファイルが落ちてくる。

cvs update -d (インポートしたファイルを指定)

トランク側の対応

この方法でファイルをインポートした後、トランク側の作業ディレクトリで 普通に update -Pd してしまうと、インポートしたファイルがディレクトリ内に取り込まれてしまう。

これを避けるには、トランクの作業ディレクトリで、デフォルトのブランチ番号 1.1.1 を指定して一度updateする。

cvs update -r 1.1.1 -Pd (インポートしたファイルを指定)

一旦これを行なうと、次回から cvs update を行なった時に新しくインポートされたファイルは含まれない。

上記コマンドを実行しないまま cvs update してしまうと、見知らぬファイルが大量に作業ディレクトリに取り込まれることになる。このため、この方法は、トランクで作業している人に「ブランチにインポートしたから、トランク側では、一度ブランチ番号を付けて update してくれ」と伝えられるような環境でのみ有効。