web-dev-qa-db-ja.com

オンラインバージョン管理システムの使用についてどう思いますか?

私は自分の個人コードのために何年もの間自分のホームベースのサーバーを実行していて、1つのシステム(SVN、VSSなど)を試しました。しかし最近、Dropbox、Skydrive、Googleアプリなどのサービスを使用して、ハードウェア障害が発生した場合のバックアップについて常に心配することなく、より貴重な(ソースコードなしの)データをオフサイトで利用できるようになりました。

そのため、さまざまなプロジェクトのソースコードで同じことをしたいと思っていますが、いくつか心配しています。つまり、私のコードは好奇心旺盛な人や詮索好きな人からどれほど安全であり、一晩で腹を立てたり、単に大量のデータの問題が発生した場合に備えて、フェイルセーフサービスが必要になる可能性がありますか?これは、誰かの Mozy.comの経験 を読むまで、実際には問題ではありませんでした。これは、コードリポジトリサービスではありませんが、データストレージはデータストレージです。

そのようなサービスを使用/推奨する場合、どれをお勧めしますか? WindowsとMacのクライアントオプションがある限り、Mercurial、SVN、GIT、TFSなど、どのシステムでも使用できます(Webベースは非常に優れた「ボーナス」です)。そして最も重要なのは、なぜですか?

5
Hugo

分散システム(Git、Mercurial、Bazaar)の利点は、リモートホストが完全に消えても、完全なリポジトリ履歴がローカルにあり、そこから他の場所から再開できることです。 Subversionのようなものでは、サーバーを紛失した場合、作業コピーしかありません。これは、何もないよりはましですが、プロジェクト履歴が失われたことを意味します。

私はオープンソースプロジェクトに GitHub を使用しており、非常に満足しています。 Git(多くの小さなリポジトリ)の使用方法では価格がすぐに高くなるため、商用プロジェクトにはGitHubを使用しません。そのため、Gitosisを使用して独自のサーバーをホストします。

Mercurial( BitBucket )とBazaar( Launchpad )にも同様の代替手段があります。

8
Dan Dyer

最初の質問に関しては、これは、コードを保護する必要があると思う程度です。オンラインサービスがうまくいかない場合でも、ローカルコピーがあります。新しい分散システムを使用すると、すべての履歴がローカルにあります。私は個人的にコラボレーションの目的でwush.netに安いアカウントを持っていますが、それ以外はすべてここでローカルにバックアップされています。

あなたの2番目の質問については、そこに最高のクライアントを持つものに行きます、私は(svnから)gitに切り替えたくなりますが、Windows用の亀のsvnはうまく機能するので、努力する価値はないようです。作業にかかるオーバーヘッドが最も少ないものを使用してください。それはあなたが使用しているIDE)またはあなたが最も快適なものに統合されているからです。

ほとんどのバージョン管理システムには安価な商用サイトがあります。VCSシステムをいじるのではなく、実際にプログラミングをしたいと思っているので、最も機能が少ないと思われるサイトを選択してください。

繰り返しますが、個人的にはまだ主にTortoise(Windowsデスクトップ)とAnkh(Visual Studio Integration)のためにSVNを好みますが、MacではXCode 3がSVNを実行でき、適切なクライアントがいくつかあります。

4