SubversionのリポジトリをGitのリポジトリに変換する方法

文:Vincent Danen(TechRepublic) 翻訳校正:村上雅章・野崎裕子
2009-04-01 08:00:00
  • このエントリーをはてなブックマークに追加

 世の中には数多くのバージョン管理システムがある。しかし、それらの源流をたどるといずれもRevision Control System(RCS)に行き当たる。RCSは個人使用には適していたものの、グループでの使用には適していなかった。このためRCSはConcurrent Versions System(CVS)へと進化することになった。そして、CVSが何年にもわたって使われた後、CVSを超えるCVSとしてSubversionが登場することになったのである。これと時期を同じくして、単一リポジトリ形式ではなく分散リポジトリ形式を採用したさまざまなバージョン管理システムが一般的になっていった。Gitはこういったものの1つであり、極めて人気の高いものとなっている。

 何らかのバージョン管理システムをすでに使用している場合、それがGitを導入する際の障壁となることは明らかである。しかし、CVSからSubversionへの移行は極めてストレートに行え、SubversionからGitへの移行もそれ以上にストレートに行えるのだ。

 今では数多くのLinuxディストリビューションがGitのパッケージを提供しているため、インストールはapt-getやyum、urpmiといったコマンドを実行するだけで済むようになっている。SubversionのリポジトリをGitのリポジトリに変換するのも簡単だ。何らかの手作業が必要になるとすれば、タグとブランチの管理を行う時くらいである。

 こういった作業を行うには、git-svnコマンドを使えるようにしておく必要がある。これはSubversionのリポジトリをGitのリポジトリに変換したり、変更内容をSubversionのリポジトリに反映したりするためのツールである。プロジェクトではSubversionのリポジトリを使いつつ、個人的にはGitを利用したいというユーザーにとって、このツールは有用なものとなるはずである。

 このパッケージは、多くのディストリビューションにおいてgit-svnという名前になっている。例えば、Fedoraでのインストールは以下のようにして行う。

# yum install git-svn

 このコマンドを実行することで、いくつかの依存パッケージがインストールされる場合もある。インストールが終了したのであれば、Gitのリポジトリがどこに作成されるのかを確認してほしい。例えば、~/svn/を頂点とするディレクトリ階層上でSubversionのリポジトリを使用できるのであれば、~/gitを頂点とするディレクトリ階層上でGitのリポジトリを利用することができるはずだ。次に~/gitディレクトリ内に「authors.txt」ファイルを作成してほしい。このファイルはSubversionのコミッター名をGitのauthorに対応付けるためのものであり、これによって、インポートされたSubversionリポジトリの正しい履歴が管理できるようになる。コミッターの数が少ないプロジェクトの場合、これはとても簡単な作業となるはずだ。コミッターの数が多い大規模プロジェクトの場合、この作業には少し時間がかかるかもしれない。このファイルのシンタックスは以下のようになっている。

名前1 = 名前2 

 具体的には以下のように指定する。

vdanen = Vincent Danen 

 左辺(vdanen)はSubversionのコミッター名であり、右辺(Vincent Danen )はGitで使用するユーザーのフルネームと電子メールアドレスである。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]