svnからgitへの移行について

11
Svn かか Git かかかかかかかか 2010/03/04 kanai

Upload: ngi-group

Post on 17-Nov-2014

4.124 views

Category:

Technology


0 download

DESCRIPTION

SvnからGitへの移行について

TRANSCRIPT

Page 1: SvnからGitへの移行について

Svn から Git への移行について2010/03/04   kanai

Page 2: SvnからGitへの移行について

簡単に git の概要 git の特徴

分散リポジトリ(マスターリポジトリ、個人リポジトリ) リポジトリ間で相互に push 、 pull ( ファイルのやり取り ) が可能 commit で個人リポジトリを更新、 push でマスターを更新 commit 前に index に毎回 add をする必要がある。

git のよいところ リポジトリ作成が容易である .svn のようなものが各ディレクトリに作成されることはない。 パッチ的に修正部分の一部のみ commit することができる。 commit の取り消し、やり直しができる。 一時的な作業および履歴管理が個人リポジトリで完結可能 共同開発におけるブランチのマージが容易 リポジトリの個人分散により結果的に障害に強い。

Page 3: SvnからGitへの移行について

Svn から Git への移行方法 git への移行方法にはなにがあるのだろうか?

git-svn Svn2git

git-svn git と svn を相互運用するのに最適。 ( svn リポジトリで個人的に git をインターフェイスととして運用したい時な

どに有用)

svn2git git-svn のラッパー

Page 4: SvnからGitへの移行について

git-svn の利用 インストール ( ローカル環境 )

ローカル環境に svn リポジトリからチェックアウト

yum install git-svn

git svn clone --trunk=trunk --tags=tags --branches=branches http://svn.hogehoge.dev/hogehoge/

Page 5: SvnからGitへの移行について

git-svn の利用 マスターリポジトリ(リモートリポジトリ環境)作成

ローカルリポジトリをマスターリポジトリにプッシュする

sudo su gitmk dir hogehoge.gitcd hogehoge.gitgit --bare init --share

git push git://git.hogehoge.dev/hogehoge.git master

Page 6: SvnからGitへの移行について

git-svn の利用 実際開発に使うローカルリポジトリ用に再度 clone する。

おわり

git clone git://git.hogehoge.dev/hogehoge.git trunk

Page 7: SvnからGitへの移行について

git-svn の利用 問題点など

svn の tags として指定されていたディレクトリを git のブランチとしてマッピングしてしまうのでどうもよろしくない。 git tag を実行してもバージョンリストが表示さない。

ということで svn2git を使うことにします。

git branch –rtags/rel-1.0 tags/rel-1.0.1 tags/rel-1.0.2 tags/rel-1.0.3 trunk

Page 8: SvnからGitへの移行について

svn2git の利用 インストール ( ローカル環境 )

ローカル環境に svn リポジトリからチェックアウト

gem sources -a http://gems.github.comgem install nirvdrum-svn2git

svn2git http://svn.hogehoge.dev/hogehoge / --verbose --trunk trunk --branches branches --tags tags

Page 9: SvnからGitへの移行について

マスターリポジトリ(リモートリポジトリ環境)作成

ローカルリポジトリをマスターリポジトリにプッシュする

sudo su gitmk dir hogehoge.gitcd hogehoge.gitgit --bare init --share

git remote add origin git://git.hogehoge.dev/hogehoge.git git push --allgit push --tags

svn2git の利用

Page 10: SvnからGitへの移行について

svn2git の利用 実際開発に使うローカルリポジトリ用に再度 clone する。

おわり

git clone git://git.hogehoge.dev/hogehoge.git trunk

Page 11: SvnからGitへの移行について

svn2git の利用 タグはどうなっているかというと・・・

ちゃんとマッピングされて認識されているようだ

ということで簡単に移行できました。

git tagrel-1.0rel-1.0.1rel-1.0.2rel-1.0.