Ticket #19658

SVNへの移行

Open Date: 2009-11-23 21:04 Last Update: 2009-11-28 16:16

Reporter:
Owner:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
7
Severity:
7
Resolution:
None
File:
None

Details

sf.jp サポート御中

現在GLOBALBASEプロジェクト(http://sourceforge.jp/projects/globalbase/ )ではCVSを使っておりますが、これをSVNへ移行したく考えております。移行処理をお願いします。

Ticket History (3/11 Histories)

2009-11-23 21:04 Updated by: joshua
  • New Ticket "SVNへの移行" created
2009-11-23 21:04 Updated by: joshua
  • Details Updated
2009-11-23 21:04 Updated by: joshua
  • Details Updated
2009-11-25 19:54 Updated by: sugi
  • Owner Update from (None) to sugi
Comment

大変遅くなって済みません。

変換を試みてみたのですが、CVS の内部で問題があるようで巧く変換出来ずにいます。 具体的には40個くらいのファイルで bra-A-01-02 と言うシンボルが重複して宣言されているというエラーになります。

少し試してみたのですが、今のところ回避方法を見つけられていません。 このシンボルについて何か心当たりはありますでしょうか?

CSV の生データは rsync を使って rsync://cvs.sourceforge.jp/cvsroot/globalbase から取得できますので、 もし可能であれば状態を見て頂けないでしょうか?

2009-11-25 20:15 Updated by: joshua
Comment

bra-A-01-02はかなり古いブランチですね。以前はリリース時にかならずブランチを作っていました。バージョンA.01.02用のブランチという意味です。現在は、バージョンB.b17.12 で、相当古いものです。 もし、そのブランチをすべて消したら、うまくいったりしませんでしょうか。 影響は小です。

2009-11-26 14:20 Updated by: sugi
Comment

どうも内部的には "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 レポジトリへロードしました。 問題がないかどうか確認下さい。

2009-11-27 13:02 Updated by: joshua
Comment

まだsubversionの知識が浅いですが、とりあえず、svnでダウンロードできているようです。すべてのブランチをダウンロードしているようで、とてつもないことになっていますが....。もう少し勉強します。ありがとうございます。

2009-11-27 13:17 Updated by: joshua
Comment

最後に、一つだけ質問しても良いでしょうか。svnリポジトリの中を眺めていると、globalbase/gbsの下にtrunk,tags,branchsというディレクトリがありますが、 trunkはcvsのhead/mainの先端(最新)にあるコードが展開されている。 branchsはブランチの先端(最新)にあるコードが展開されている。 tagsはおのおのタグをつけたところのコードが展開されている。

という構成と考えてよろしいでしょうか。 svnリポジトリ上のbranchsを消しても、trunkやbranchesには影響を与えないと考えてよいでしょうか。

2009-11-27 14:41 Updated by: sugi
Comment

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 でも良いです。

2009-11-28 16:15 Updated by: joshua
Comment

いろいろありがとうございました。 こちらでも試してみます。

2009-11-28 16:16 Updated by: joshua
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2009-11-28 16:16

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login