SubversionからGitに移行

実はちょっと前にしてました。
今ではすっかりGitしか使わなくなってます。

移行の理由は世間の流行に乗って、という部分もあるのだけど主な理由はクライアントソフトの不在。
MacでいいGUIのSVNクライアントがなくて結局コマンドラインで使っているので、そんだったらGitでいいじゃんといったノリで移行。

WindowsだとTortoiseSVNがかなりいい感じだけど、Macではそれに匹敵する物が見つからなかったのが理由。
svnXはMacでもイマイチなUIなソフトはあるんだなー、と言う残念さ教えてくれたし、SCPluginは後一歩だったけどやや機能的に物足りず使い続けるには至らなかった。
人に何かいい物ないかと聞いてもコマンドライン派が多かったような気がする。

でコマンドラインでも使い始めてみれば実のところそんなに不便はなかったのだが、ただignoreするファイルの設定がいちいちめんどくさくて死にそうだった。
(svn propsetとかコマンドラインでやるもんじゃねえって個人的に思いました)

Gitは以前から実験的に触ったことはあったので移行は割とスムーズに。
ただsvnとrevertの意味が違うのでそこだけちょっと戸惑ったくらい。

リポジトリの移行も簡単で

$ sudo port install git-core +svn

とかでgit-svn込みのGitを入れて

$ git svn clone svn://hoge_repos/hoge_project/trunk hoge_by_git

これをリポジトリサーバ上ににまんまコピーするなり–bareオプションを付けてcloneするなりして完了。
さくっと移行できてしまった。
詳しいところはぐぐればたくさん出てくるので詳細は割愛。

しかし使い始めてみると分散管理の必要がなくてもGitは使いやすい。

  • オフラインでも使える(やはり区切りごとにコミットできるのは精神衛生上よい)
  • サーバ上のマスターリポジトリに何かあっても手元のリポジトリをさくっとマスターにできる(これはひとり開発だからか)
  • (上に関連して).git/configをいじれば簡単に参照しているマスターを変更できる
  • ブランチ切ったりマージするのが簡単(まあブランチ切らないけど)
  • ignoreするファイルの設定が簡単(.gitignoreに書くだけでいい)
  • .svnファイルがディレクトリごとにできないので煩わしくなくていい
  • githubがある

ざっと思いつく限りでこんなかんじ。
サーバ上のリポジトリに縛られない軽快さが予想以上に良い。

あとはGUIのクライアントでいいものが出ればSubversionのアドバンテージはなくなってしまう気がするね。

この投稿へのコメント

  1. 通りすがりのiPhone said on 2009年6月11日 at 7:52 AM

    gitはマルチバイトファイル名の取り扱いに難ありなのがとても残念。なのでソースはgit、ドキュメントはMercurialという変則管理中デス。svn -> gitは楽そうですな。早速やってみようかと。

  2. akahige said on 2009年6月11日 at 10:12 AM

    なるほど、マルチバイトファイル名とは盲点でした。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL