5

プロジェクトを開始しようとしていますが、Google Code を使用してホストすることを考えていました。バージョン管理に Mercurial または SVN を使用するオプションが提供されます。VCS を使用したことがないので、どちらが使いやすいか知りたいです。

このプロジェクトには 2 人のメイン プログラマーが関与していますが、他の数人のプログラマーが少額の貢献をする可能性があります。主に Python で書かれており、主要なエディターとして Emacs を使用しています。どちらも Windows オペレーティング システムを使用しています。

4

5 に答える 5

12

マーキュリアルを使用します。

どちらのシステムも簡単ですが、Mercurial は高速です。昨夜他の人がしたことと、昨夜あなたがしたことの違いを比較したいですか? SVN を使用すると、Google のサーバーと通信する間、ファイルごとに数秒かかります。Mercurial を使用すると、ほぼ瞬時に実行できます。

差分ごとに数秒というのは大したことではないように聞こえるかもしれませんが、これらの一時停止を (ほとんど) 排除するシステムを使用すると、機敏で応答性の高いインターフェイスの利点が明らかになります。

ああ、人々はお尻に大きな苦痛を与えることなく、あなたのプロジェクトをフォークすることができます。それもかなりクールです。

.svnEDIT:Mercurialは、プロジェクト内のすべてのフォルダーにフォルダーを平手打ちする必要も感じていません。これらは醜いものです (そして、*nix システムのように、Windows ではデフォルトで隠されません)。.hgプロジェクトのルートにフォルダーが 1 つだけあるため、よりクリーンになります。

編集: Mercurial を使用するもう 1 つの理由: hg bisect. 原因となった正確なリビジョンを見つけることができたので、2 時間ではなく 10 分でバグを追跡できたのは素晴らしいことです。Perl ツールがあるように見えsvn-bisectますが、コアにはありません。また、SVN のリビジョン間の更新が遅いため、プロセスがはるかに長くなります。

于 2009-11-19T14:15:27.657 に答える
1

以前に VCS を使用したことがない場合は、いずれかを選択してください。どちらもあなたのニーズには十分であり、どちらかをゼロから学ぶ必要があります。

Mercurial は git のように分散化されていますが、ソース管理に触れたことのない 2 人のプログラマー チームにとっては、それほど心配する必要はありません。

どちらかを選んで忘れてください。

于 2009-11-19T12:14:11.193 に答える
1

VCS を使用したことがない場合は、おそらくいずれかを使用するのに苦労するでしょう。そこに原理的な違いはないと思います。ただし、これら 2 つの重要な違いは、SVN が中央集権型であり、Mercurial が分散型であることです。

ネットワークにアクセスできない場所 (飛行機、電車など) から作業する場合、分散型 VCS を使用すると、新しい変更を開始する前に変更をローカルにコミットできます。後で、中央リポジトリと同期します。これは便利です。

集中化された VCS では、これは許可されません。もちろん、引き続きコードの作業を行うことはできますが、変更の間にチェックインすることはできないため、リポジトリにアクセスできるようになったら、蓄積された変更を一度にコミットする必要があります。

于 2009-11-19T13:14:53.863 に答える
1

簡単な答えは SVN です。TortoiseSVN と TortoiseHg を起動すると、美学と使いやすさの点で前者が後者よりも少し進んでいることがわかりますが、この場合、単純な答えでは十分ではないと思います。

バージョン管理を初めて使用する場合は、(現在、Hg よりも SVN にはるかに慣れているため) Mercurial の方が適していると提案したくなるでしょう。現在、分散バージョン管理 (DVCS) は、中央リポジトリへの依存により、Subversion よりも柔軟性が高くなります。特に、完了した変更を同僚にプッシュする前に、完了していないコードをローカルでコミットする能力。Mercurial には「本」があるため、一連の作業ガイドラインがあり、ツールとして一般に受け入れられているため、ピア サポートを利用できます。

DVCS に関する私の主な懸念は、さまざまな理由から、別のサーバーがなければ (または少なくとも開発ボックスにリポジトリがなければ) バージョン管理が不完全であると考えていることです。ただし、この場合、中央リポジトリがあるため、引数はあまり有効ではありません。

できるだけ早い機会に継続的インテグレーション サーバー (ビルドとテスト) を自分のプロジェクトに導入することを目指すべきだと思う二次的な問題がありますが、これも共有/中央リポジトリが与えられた DVCS で実行できることです。

私は今でも SVN には称賛すべき点がたくさんあると思っています。私たちの作業リポジトリは、予見可能な将来にわたって SVN のままであり続けます (決定するのは私であることに注意してください!)。そして、私が行くように学びます。

于 2009-11-19T12:22:25.217 に答える
-1

SubVersion を使うべきだと思います。機能面で SVN が Mercurial よりも優れているからではなく、SVN が非常に人気があり、多くのドキュメント (無料の eBook など) といくつかの非常に優れた無料のプラグイン (VS 用の AnkHSVN、Windows Explorer 用の TortoiseSVN) があるためです。 )。以前にVCSを使用したことがない場合は、ドキュメントを参照するとすぐに起動して実行できると思います...

チッ!

于 2009-11-19T12:20:26.023 に答える