コード管理システムの移行

SourceForge.JP では、コード管理システム間でのデータ移行も受け付けています。

移行は Web 上から自動的に行うことは出来ません。 プロジェクト管理者がログインした状態でサポート要求に移行したいプロジェクト名と必要事項を記入してください。SourceForge.JPスタッフが対応いたします。

SourceForge.JP 上で別のシステムへ移行する場合

CVS から Subversion への移行

移行したいプロジェクト名をサポート要求に記入してください。 スタッフがサーバ上で変換をいたします。 プロジェクトのCVSの使い方によっては変換できない場合があります。

変換された Subversion レポジトリのレイアウトは以下の形式になります。

/svnroot/yourproject
/svnroot/yourproject/yourmodule1
/svnroot/yourproject/yourmodule1/branches
/svnroot/yourproject/yourmodule1/tags
/svnroot/yourproject/yourmodule1/trunk
/svnroot/yourproject/yourmodule2
/svnroot/yourproject/yourmodule2/branches
/svnroot/yourproject/yourmodule2/tags
/svnroot/yourproject/yourmodule2/trunk

もし、この形式以外の変換をかけたい場合は、CVSに関するFAQ#Q: CVSレポジトリを手元にまるごとバックアップできますか? に従って rsync でレポジトリ全体を取得し、ご自分で Subversion のダンプファイルを作成してください。

Subversionの使い方ページも参照してください。

Subversion から Git への移行

1. SourceForge.JP上にGit リポジトリを作成する

まず、SourceForge.JP側にgitリポジトリを作成しましょう。プロジェクト管理メニューの「機能選択/設定」を開き「Git」にチェックをつけて「更新」を押して、Git機能を有効にします。有効にしたら、Git項目の「管理」のリンクをクリックしてGitの管理ページを開きましょう。

Gitの管理ページにある「新規リポジトリの作成」をクリックして、リポジトリ名などを決めリポジトリを作成します。 (以下の説明では test1 という名前のリポジトリを作成したものとします)

リポジトリが実際に利用できるようになるまでは数分かかりますので、次の工程に進んでおきましょう。

2. 作業用レポジトリにSubversionのレポジトリの内容を取り込む

Subversionレポジトリの内容を取り込み、作業用のGitレポジトリを作成しましょう。 作業用のディレクトリを作成して、カレントディレクトリを変更しておきます。

mkdir -p ~/work/GIT
cd ~/work/GIT

git svn コマンドを利用して以下のように実行します。 (username/projectnameはご自分のユーザ名/目的のプロジェクト名で置き換えてください)

git svn clone -s svn+ssh://username@svn.sourceforge.jp/svnroot/projectname/

projectname にGitレポジトリが作成されます。 もし対象の Subversion レポジトリのURL直下が trunk, branches, tags という標準の構成でない場合は、-s を外して (必要であれば tag などの場所をオプションで指定して)ください。

次に、いま clone したレポジトリ内に cd し、 SourceForge.JPに作成したGitリポジトリをoriginとして登録しておきましょう(必須ではないですが、以下登録したものとして作業を説明します)

cd projectname
git remote add origin username@git.sourceforge.jp:/gitroot/projectname/test1.git
3. SourceForge.JPのレポジトリにpushする

作業用ディレクトリに取り込んだ内容を SourceForge.JP のリポジトリに反映させるために push を行ないます。tagやbranchの内容も含めて反映するために--mirrorオプションを使いましょう。

git push --mirror origin master

外部レポジトリから SourceForge.JP 上へ移行する場合

CVS への移行

お手元の CVS のレポジトリ全体を tar でアーカイブし、チケットに添付するか、その URL をお知らせください。

Subversion への移行

お手元のレポジトリに svnadmin dump コマンドを使って、ダンプファイルを作成してください。 ダンプをチケットに添付するか、その URL をお知らせください。

Git への移行

git push で対応出来ない移行が必要な場合は、チケットにてご相談ください。