リポジトリへのデータ移行

Subversion リポジトリへ新しいファイルを入れるには、以下の二つの方法があります。svn importsvn add です。ここでは、svn import について扱い、svn add については、本章で後ほど Subversion の典型的な一日について再検討する際に扱います。

svn import

svn import コマンドは、バージョン管理外のファイルツリーをコピーする手っ取り早い方法です。必要に応じて中間ディレクトリも作成します。svn import には、作業コピーは必要なく、ファイルをリポジトリに即時コミットします。通常、これから Subversion リポジトリで追跡を始めたい、既存のファイルツリーがある場合に使用します。以下に例を示します。

$ svnadmin create /usr/local/svn/newrepos
$ svn import mytree file:///usr/local/svn/newrepos/some/project ¥
             -m "Initial import"
Adding         mytree/foo.c
Adding         mytree/bar.c
Adding         mytree/subdir
Adding         mytree/subdir/quux.h

リビジョン 1 をコミットしました。

上記の例は、ディレクトリ mytree の内容を、リポジトリ中のsome/project ディレクトリの下にコピーしています。

$ svn list file:///usr/local/svn/newrepos/some/project
bar.c
foo.c
subdir/

インポートの完了後、元のツリーが作業コピーに変換されていないことに注意してください。作業を始めるには、このツリーのまっさらな作業コピーを、さらに svn checkout する必要があります。

推奨するリポジトリレイアウト

Subversion の柔軟性により、あなたがしたい方法でリポジトリをレイアウトできますが、開発の「メインライン」のままにしておく trunk ディレクトリ、ブランチコピーを格納する branches ディレクトリ、タグコピーを格納する tags ディレクトリを作成するのをお奨めします。以下に例を示します。

$ svn list file:///usr/local/svn/repos
/trunk
/branches
/tags

タグやブランチについての詳細は、第4章 で学べます。複数のプロジェクトをセットアップする方法の詳細は、「プロジェクトルート」 について リポジトリのレイアウト項リポジトリ構成の計画項 をお読みください。