SVNへの移行
大変遅くなって済みません。
変換を試みてみたのですが、CVS の内部で問題があるようで巧く変換出来ずにいます。 具体的には40個くらいのファイルで bra-A-01-02 と言うシンボルが重複して宣言されているというエラーになります。
少し試してみたのですが、今のところ回避方法を見つけられていません。 このシンボルについて何か心当たりはありますでしょうか?
CSV の生データは rsync を使って rsync://cvs.sourceforge.jp/cvsroot/globalbase から取得できますので、 もし可能であれば状態を見て頂けないでしょうか?
bra-A-01-02はかなり古いブランチですね。以前はリリース時にかならずブランチを作っていました。バージョンA.01.02用のブランチという意味です。現在は、バージョンB.b17.12 で、相当古いものです。 もし、そのブランチをすべて消したら、うまくいったりしませんでしょうか。 影響は小です。
どうも内部的には "bra-A-01-02\r" というブランチが作られていて、cvs2svn ではこれを CR を落として解釈するためにおかしくなっていたようです。レポジトリをコピーして RCS のファイルを直接いじり、後ろのバージョンで重複している物を削除しました。
あと、"gbs/env/src/pdb/fa64/", "gbs/env/src/pdb/favt64/", "gbs/env/test/hino" という名前のタグが振られているファイルがありましたが、 これも変換が巧くいかないので、おそらくミスだろうとみなしてこの3つのタグを除外しました。
それから、":ext:gomatsumoto@cvs.sourceforge.jp:" というモジュールが作成されていましたが、 これら多分ミスだろうと言うことで除外しました。
これらの処理をしたデータをプロジェクトの Subversion レポジトリへロードしました。 問題がないかどうか確認下さい。
まだsubversionの知識が浅いですが、とりあえず、svnでダウンロードできているようです。すべてのブランチをダウンロードしているようで、とてつもないことになっていますが....。もう少し勉強します。ありがとうございます。
最後に、一つだけ質問しても良いでしょうか。svnリポジトリの中を眺めていると、globalbase/gbsの下にtrunk,tags,branchsというディレクトリがありますが、 trunkはcvsのhead/mainの先端(最新)にあるコードが展開されている。 branchsはブランチの先端(最新)にあるコードが展開されている。 tagsはおのおのタグをつけたところのコードが展開されている。
という構成と考えてよろしいでしょうか。 svnリポジトリ上のbranchsを消しても、trunkやbranchesには影響を与えないと考えてよいでしょうか。
svn の場合、checkout はたいてい trunk や必要なブランチだけを選択して行うと便利です。 勿論ディスクに余裕があり、全部展開されていた方が分かりやすい場合は根本からチェックアウトしても良いです。 ただ、レポジトリ側の操作は SVN URL に対して直接行う事が出来ますので、全部チェックアウトしなくても ブランチなどの操作はできます。
joshua への返信
最後に、一つだけ質問しても良いでしょうか。svnリポジトリの中を眺めていると、globalbase/gbsの下にtrunk,tags,branchsというディレクトリがありますが、 trunkはcvsのhead/mainの先端(最新)にあるコードが展開されている。 branchsはブランチの先端(最新)にあるコードが展開されている。 tagsはおのおのタグをつけたところのコードが展開されている。
そうです。
展開というか、レポジトリ側で論理コピーされたものがツリー上に見えているという感じでしょうか。 Subversion は branch と tag (そしてtrunkも)単にツリー上に区別無く配置されています。 そう言う意味ではある tag とある branch, そして trunk も構成的には同じ物です。 単に、一般的にそう言うツリー構成にして使われている。と言うだけですね。
例えば新しい tag を振る時は単にコピーするという操作で出来ます。
svn cp https://svn.sourceforge.jp/globalbase/gbs/trunk https://svn.sourceforge.jp/globalbase/gbs/tags/fooちなみにこの時はtags/fooの下にtrunkと同じ構成のディレクトリツリーがコピーされたように見えますが、 中身の実データがコピーされている訳ではありません。
という構成と考えてよろしいでしょうか。 svnリポジトリ上のbranchsを消しても、trunkやbranchesには影響を与えないと考えてよいでしょうか。
これもそうです。tag や branch の下を消すとそのツリーからは消えますが、他の場所には影響しません。
なので、変換後のレポジトリに要らない branch や tag がある場合は単に
svn rm https://svn.sourceforge.jp/globalbase/gbs/branches/unused等で消せます。
gbs 以下を全てチェックアウトしている場合は、手元のワーキングコピーで svn rm して commit でも良いです。
いろいろありがとうございました。 こちらでも試してみます。
sf.jp サポート御中
現在GLOBALBASEプロジェクト(http://sourceforge.jp/projects/globalbase/ )ではCVSを使っておりますが、これをSVNへ移行したく考えております。移行処理をお願いします。