注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。
最近はGitHubやBitBucketをはじめとした分散型バージョン管理システムが出回るようになり、多くのプロジェクトでGitやMercurialなどの分散型バージョン管理システムでバージョン管理がなされるようになっているようだ。それを考えると、集中型バージョン管理システムの代表であるSubversionがいかに使いづらいかを感じさせられた。特にマージはかなり難儀した。
Subversionにおけるマージは、基本的には現在のワークコピーから他のリポジトリーからマージするという形態なのだが、これはマージするときにコミットしていない状態でマージできてしまうという致命的な問題を抱えており、万一競合がひどくて断念することになった場合、コミットしていない修正もお陀仏になってしまう。故にSubversionのマージは安全とは言えなかった。
一方、Girではマージを行う際は必ずコミットが完了している必要があり、万一競合がひどくて断念しなければならない事態になったとしても、リセットで戻すことができる。もっとも、ローカルにもリポジトリーを保持する関係上、データは肥大化する傾向にあるが。
もしSubversionを使っていて、マージに難儀しているようであれば、是非ともGitへの移行を勧めたい。特にマージが多いプロジェクトではかなり利便性が上がるので、是非とも試してみると良いだろう。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。