Git に対する Subversion の利点

気がついたら Git を初めて触ってからもう5年近くになってました。

それまで使ってた Subversion はもう全然使ってなくて、もう svn のサブコマンドは ls, log, co くらいしか使えません。Subversion のリポジトリを見ないといけないときは、とりあえず git svn で Git リポジトリに変換してから見たりしてます。 SCCS, RCS, CVS はもう全然わからないので、Subversion はまだ覚えてる方ですけど…。

Subversion に対する Git の利点はあちこちで述べられているので今更何も書くことはありませんが、Git よりも Subversion の方が良いこともあるので、忘れないうちに書いときます。

リポジトリ全体をコピーしなくても編集できる

リポジトリの歴史が長い場合や、頻繁に更新されるバイナリデータがあるとリポジトリが大きくなります。それは Subversion でも同様なのですが、Subversion はリポジトリ全体をローカルにコピーする必要はないので、ローカル用のディスクは作業ディレクトリ分だけで良いです。

Git は編集するためにはリポジトリ全体をコピーする必要があるので、ローカルディスクもそれだけ必要となります。git clone --depth で最新n件分のコミットだけ clone することができますが、そのようにして得られたリポジトリから元のリポジトリに対して push することはできません。

…と思っていたのですが、どうやらバージョン 1.9 からできるようになったようです。

コミットに認証が必要

Git はローカルにリポジトリがあるので、リポジトリに対して何でもできます。リモートリポジトリにプッシュ権があれば、人の名前を騙ったコミットをプッシュすることもできます。

Subversion サーバーを立てる場合は、普通はコミット時に認証を必要とするように設定するので、他人を騙ってコミットすることはできません。

[追記] Git でコミットに署名をつけることができるようです。

リポジトリ内のファイルを HTTP で簡単に得られる

Apache で Subversion サーバーを立ててる場合、専用プログラムを使わなくても、ブラウザだけですべてのブランチとタグのファイルを HTTP で取得できます。 最新のリビジョンだけで、古いリビジョンのファイルは見えませんが…。

[追記] URLのパラメータでリビジョンの指定もできるようです。

WebDAV でファイル共有できる

これも Apache でサーバーを立ててる場合ですが、Subversion 用プログラムを使わなくても、WebDAV でファイル共有できます。 Windows を使っている場合はエクスプローラーを使ってアクセスすることができます。 コミットメッセージは書けませんが、非エンジニアの人に共有ディスクと同じ感覚でファイルを置いてもらうだけでバージョン管理できるのはお手軽です。

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

実用 Subversion 第2版

実用 Subversion 第2版

  • 作者: C. Michael Pilato,Ben Collins-Sussman,Brian W. Fitzpatrick,宮本久仁男(監訳),朝枝雅子,浜本階生
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/07/27
  • メディア: 大型本
  • 購入: 6人 クリック: 45回
  • この商品を含むブログ (19件) を見る