Show page source of SCM_Migration #102867

[[PageNavi(NavigationList)]]

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

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

移行は Web 上から自動的に行うことは出来ません。
プロジェクト管理者がログインした状態で[https://osdn.jp/tracker/index.php?func=add&group_id=1&atid=114 サポート要求]に移行したいプロジェクト名と必要事項を記入してください。OSDNスタッフが対応いたします。

== OSDN 上で別のシステムへ移行する場合 ==

=== CVS から Subversion への移行 ===

移行したいプロジェクト名を[https://osdn.jp/tracker/index.php?func=add&group_id=1&atid=114 サポート要求]に記入してください。
スタッフがサーバ上で変換をいたします。
プロジェクトの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の使い方#CVSからSubversionへの変更 Subversionの使い方]ページも参照してください。

=== Subversion から Git への移行 ===

=====  1. OSDN上にGit リポジトリを作成する

まず、OSDN側に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.osdn.jp/svnroot/projectname/
}}}

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

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

{{{
cd projectname
git remote add origin username@git.osdn.jp:/gitroot/projectname/test1.git
}}}

===== 3. OSDNのレポジトリにpushする 

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

{{{
git push --mirror origin master
}}}

== 外部レポジトリから OSDN 上へ移行する場合 ==

=== Subversion への移行 ===

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

=== Git への移行 ===

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

[[PageNavi(NavigationList)]]