アプリなどの開発でバージョン管理を行う際、なんらかの理由でSubversionを使う場合があるが、この際にgit-svnを使う場合もあり得る。この場合、それぞれに利点と難点があることから、それを踏まえた上で使い分けたいところである。
まず、利点としては、ローカルにリポジトリのデータを保持できるようになり、万一Subversionのサーバーが壊れたりした場合に、ローカルで保存したデータであればそれを残せる場合があることである。
また、ブランチを切り分けた際に、わざわざ面倒なコマンドを入れたり、ネットワークリクエストをかけたりする必要がなくなり、ブランチ切り分けの際の利便性が大幅に上がる特徴を持っている。
その他、将来的にgitに移行した際にそれがそのままgitサーバーに反映させることができるのも利点である。
一方、難点としては、特に最初のリビジョンからクローンした場合、すべての更新履歴データを保存することになってしまい、ローカルのリポジトリのサイズが非常に大きくなってしまうことである。もっとも、最新のリビジョンだけを取得するという方法もあるが、その場合はgit-svnの利点が限定的なものとなってしまう。
また、ツールにもよるが、Subversionへの反映がローカルのリポジトリがちゃんとすべてコミットされている状態でないと行えなくなってしまうことも地味に面倒だったりする。
上記の利点・難点を踏まえると、個人的にはgit-svnを使ったほうが良いように考えられる。もちろん、それがベストとは必ずしも言い切れないが。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。