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

3,511 views

Published on

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,511
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. SvnからGitへの移行について<br /> 2010/03/04 kanai<br />
  2. 2. 簡単に gitの概要<br />gitの特徴<br />分散リポジトリ(マスターリポジトリ、個人リポジトリ)<br />リポジトリ間で相互にpush、pull (ファイルのやり取り)が可能<br />commitで個人リポジトリを更新、pushでマスターを更新<br />commit前にindexに毎回addをする必要がある。<br />gitのよいところ<br />リポジトリ作成が容易である<br />.svnのようなものが各ディレクトリに作成されることはない。<br />パッチ的に修正部分の一部のみcommitすることができる。<br />commitの取り消し、やり直しができる。<br />一時的な作業および履歴管理が個人リポジトリで完結可能<br />共同開発におけるブランチのマージが容易<br />リポジトリの個人分散により結果的に障害に強い。<br />
  3. 3. SvnからGitへの移行方法<br />gitへの移行方法にはなにがあるのだろうか?<br />git-svn <br />Svn2git<br />git-svn<br />git と svnを相互運用するのに最適。<br /> (svnリポジトリで個人的にgitをインターフェイスととして運用したい時などに有用)<br />svn2git<br />git-svnのラッパー<br />
  4. 4. git-svnの利用<br />インストール(ローカル環境)<br />ローカル環境にsvnリポジトリからチェックアウト<br />yum install git-svn<br />git svn clone --trunk=trunk --tags=tags --branches=branches http://svn.hogehoge.dev/hogehoge/<br />
  5. 5. git-svnの利用<br />マスターリポジトリ(リモートリポジトリ環境)作成<br />ローカルリポジトリをマスターリポジトリにプッシュする<br />sudo su git<br />mk dir hogehoge.git<br />cd hogehoge.git<br />git --bare init --share<br />git push git://git.hogehoge.dev/hogehoge.git master<br />
  6. 6. git-svnの利用<br />実際開発に使うローカルリポジトリ用に再度cloneする。<br />おわり<br />git clone git://git.hogehoge.dev/hogehoge.git trunk <br />
  7. 7. git-svnの利用<br />問題点など<br />svn のtagsとして指定されていたディレクトリをgitのブランチとしてマッピングしてしまうのでどうもよろしくない。git tag を実行してもバージョンリストが表示さない。<br />ということでsvn2gitを使うことにします。<br />git branch –r<br />tags/rel-1.0<br /> tags/rel-1.0.1<br /> tags/rel-1.0.2<br /> tags/rel-1.0.3<br /> trunk<br />
  8. 8. svn2gitの利用<br />インストール(ローカル環境)<br />ローカル環境にsvnリポジトリからチェックアウト<br />gem sources -a http://gems.github.com<br />gem install nirvdrum-svn2git<br />svn2git http://svn.hogehoge.dev/hogehoge / --verbose --trunk trunk --branches branches --tags tags <br />
  9. 9. マスターリポジトリ(リモートリポジトリ環境)作成<br />ローカルリポジトリをマスターリポジトリにプッシュする<br />sudo su git<br />mk dir hogehoge.git<br />cd hogehoge.git<br />git --bare init --share<br />git remote add origin git://git.hogehoge.dev/hogehoge.git <br />git push --all<br />git push --tags<br />svn2gitの利用<br />
  10. 10. svn2gitの利用<br />実際開発に使うローカルリポジトリ用に再度cloneする。<br />おわり<br />git clone git://git.hogehoge.dev/hogehoge.git trunk <br />
  11. 11. svn2gitの利用<br />タグはどうなっているかというと・・・<br />ちゃんとマッピングされて認識されているようだ<br />ということで簡単に移行できました。<br />git tag<br />rel-1.0<br />rel-1.0.1<br />rel-1.0.2<br />rel-1.0.<br />

×