SubversionがCVSに比べてよい点はどこですか?悪い点はどこですか?

回答の条件
  • 1人2回まで
  • 登録:2006/05/22 21:15:23
  • 終了:2006/05/23 00:32:44

ベストアンサー

id:sanzouhousi No.2

sanzouhousi回答回数11ベストアンサー獲得回数22006/05/22 21:53:48

ポイント30pt

CVS もずいぶんと歴史があり、ネットワーク対応などは後付けで 実装されているために無理が生じている部分もあります。 そこで、CVS に似ていながらその問題点を解消すべく、 CVS の後継として Subversion が開発されました。

Subversion は CVS モデルをつかい、それにディレクトリバージョン機能、不分割コミット、データベースバックグラウンド、バージョン化されたメタデータ、効率的なバイナリファイル処理、柔軟なネットワーク機能、そして、厳密な C の API などの機能を付け加えてきました

Subversion はソースファイルだけでなく、 バイナリのデータファイル等も扱えるようになっているため、 プログラマだけでなく、デザイナーなどでも使うことができて便利です。 他の特徴としては、ディレクトリも正式に扱える、 ファイルのリネーム・移動もサポートしている、 コミットの単位はリポジトリごと (リビジョン番号も)、 Unicode (UTF-8) で管理されているため漢字も上手く扱える、 タグをつけるのが早い、などがあります。 フリーなオープンソースなのもありがたいところです。

サーバー側では、従来の CVS と同様の方法(CVS の pserver に相当する svnserve があります)のほかに、WebDAV を使った方法、SSH や TELNET を使う方法も用意されています。 個人でローカルで使用する分にはサーバーを立ち上げる必要もありません。

 

サーバープログラムは subversion.tigris.org から入手できます。

WebDAV の方法を使う場合、Apache の 2.0 以降のバージョンにモジュールを 組み込むだけで使えます。この方法では、クライアント側から HTTP で 通信するため、プロキシを通りやすくできる利点があります。 ブラウザでリポジトリを見られますし、 アクセス制限もかけやすくて、なかなか便利です。

ただし、Subversion は死ぬほど遅い!

文字セット変換に失敗する。

'svn diff' が履歴に従わない。

等々があります。

http://subversion.bluegate.org/svn-anti-fud-ja.html

ここでは、開発者がかなり詳しく説明しています。

その他の回答(3件)

id:stormbird No.1

stormbird回答回数75ベストアンサー獲得回数22006/05/22 21:36:10

ポイント10pt

http://www.saisse.jp/pukiwiki/pukiwiki.php?Subversion

ディレクトリの扱いがまともなこと、バイナリデータも差分管理できること、あたりが大きいと思います。

悪い点はまだCVSよりマイナーなことでしょうか。

id:westfish

リファクタリング後にゴミが残らないのはいいですね!

2006/05/23 00:07:50
id:sanzouhousi No.2

sanzouhousi回答回数11ベストアンサー獲得回数22006/05/22 21:53:48ここでベストアンサー

ポイント30pt

CVS もずいぶんと歴史があり、ネットワーク対応などは後付けで 実装されているために無理が生じている部分もあります。 そこで、CVS に似ていながらその問題点を解消すべく、 CVS の後継として Subversion が開発されました。

Subversion は CVS モデルをつかい、それにディレクトリバージョン機能、不分割コミット、データベースバックグラウンド、バージョン化されたメタデータ、効率的なバイナリファイル処理、柔軟なネットワーク機能、そして、厳密な C の API などの機能を付け加えてきました

Subversion はソースファイルだけでなく、 バイナリのデータファイル等も扱えるようになっているため、 プログラマだけでなく、デザイナーなどでも使うことができて便利です。 他の特徴としては、ディレクトリも正式に扱える、 ファイルのリネーム・移動もサポートしている、 コミットの単位はリポジトリごと (リビジョン番号も)、 Unicode (UTF-8) で管理されているため漢字も上手く扱える、 タグをつけるのが早い、などがあります。 フリーなオープンソースなのもありがたいところです。

サーバー側では、従来の CVS と同様の方法(CVS の pserver に相当する svnserve があります)のほかに、WebDAV を使った方法、SSH や TELNET を使う方法も用意されています。 個人でローカルで使用する分にはサーバーを立ち上げる必要もありません。

 

サーバープログラムは subversion.tigris.org から入手できます。

WebDAV の方法を使う場合、Apache の 2.0 以降のバージョンにモジュールを 組み込むだけで使えます。この方法では、クライアント側から HTTP で 通信するため、プロキシを通りやすくできる利点があります。 ブラウザでリポジトリを見られますし、 アクセス制限もかけやすくて、なかなか便利です。

ただし、Subversion は死ぬほど遅い!

文字セット変換に失敗する。

'svn diff' が履歴に従わない。

等々があります。

http://subversion.bluegate.org/svn-anti-fud-ja.html

ここでは、開発者がかなり詳しく説明しています。

id:F57PB No.3

F57PB回答回数86ベストアンサー獲得回数02006/05/22 22:07:32

ポイント25pt

両者を実際使ってみた経験上ですが。。。

○良い点

 ・日本語のファイル名が問題なく扱える。(CVSでは文字化けすることが多々あった)

 ・ファイルを改名/移動しても履歴が残る。

 ・ファイルを排他ロックできる。(バイナリファイル等、マージが不可能なファイルで便利)

●悪い点

 ・導入がやや面倒。

 ・CVSに比べると導入実績が少ないので、嫌がられる事がある。

私はもうCVSには戻れません。

id:znz No.4

znz回答回数193ベストアンサー獲得回数252006/05/22 23:35:03

ポイント25pt

すぐに思いついたものを列挙してみました。

良い点:

  • ファイル名などに日本語を使っても問題がおきにくい。
  • ファイル名の変更などもちゃんと履歴に残せる。
  • レポジトリのあるサーバにつながずにdiffがとれる。
  • 複数のファイルの変更を1つのcommitとして扱える。

悪い点:

  • ファイルごとのブランチが出来ない。(ディレクトリ丸ごとのブランチしか出来ない)
  • インストールが面倒(BSD系だとCVSは標準で入っていることが多い)
  • 複数のファイルの変更をcommitするときにファイルごとのlogが書けない。
id:westfish

オフラインでもdiffが取れるのは驚きです。

悪い点の1と3は個人的には問題なしです。

2006/05/23 00:22:50
  • id:MillyC
    ファイルは別のパスにコピーするだけでブランチとして使用できるでしょう。(クライアントに専用のコマンドが無い、ということなのでしょう。)

    複数ファイルの変更に別の log を書く必要がある場合、それは同時に commit すべきでないということです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません