2009-06-19 14 views
4

私は新しいプログラムのためにSCMをセットアップするのを手伝っています。現在、VCSを決定中です。オープンソースのクリアケースの代替品

この時点の主な候補は、SVN、ClearCase、SVN + DVCS、そしてDVCSです。

現時点では、チームはSVNまたはSVN + DVCSのいずれかに向かっています。 ClearCaseの経費と管理コストを避けたいが、それが提供するワークフローとバージョン管理オプションが必要である。私はDVCSも使うという選択肢をもたらしました。その考え方が検討されています。

DVCSについては、Mercurial、Bazaar、およびGitについて検討しています。チームはSVNに慣れていますが、必要な汎用性を提供するとは思わないので、私たちはSVNオプションの上にDVCSを見ています。

誰でもこのような設定を行うためのアドバイス(既存のツール、プロセスなど)はありますか?

懸念が含まれます:

  • セットアップの容易さ
  • <開発のワークフロー(設定 - >コードレビューを - >テスト - >トランク、そしてトランク - >統合テスト支店 - バグ修正が入れ>リリースリリースブランチに)、監査(それが導入されたバグを見つけた)
  • 生成メトリクス
  • ClearCaseのに使用開発者のための合理的な学習曲線。 (それは石で設定されていないが、おそらく、Redmineのことになるだろう)
  • Windows開発
  • 問題追跡の統合のClearCaseの管理者として

答えて

9

あなたがコンプレックスを持っていない限り、私はそのツールを排除しますワークフローをマージします。

workflowあなたが言及するのは、分岐し、修正してから簡単に元に戻すことができますが、これはSVNには向いていません。

ClearCase(espacially非UCM ClearCase)に使用されているときの最大のトラップは、config specの "構成"です。あなたはDVCS(Mercurialは、バザール - やGitの以来、それworks really well on Windows)を選択した場合は
、あなたはnot be able to get the same "inheritance effect" -- (when you are selecting different versions with different successive select rules --だろう:その答えに言ったように:純粋に中央VCSでは

、あなたは、ClearCaseの中で(ワークスペースを定義することができます、あなたの "ビュー"スナップショットまたはダイナミック)あなたが望むどのようなルールで。
DVCSでは実用的ではないでしょう(「Distributed」のように):ブランチを作成するときは、開始点とコンテンツを明確に定義し、他のリポジトリに簡単に複製する必要があります。

ClearCase UCMを使用している場合は、一貫したファイルセットの特定を意味します。これは、たとえばGit submodulesなどでのみ実現できます。
これらのDVCSでは、ClearCase UCMのやり方とは異なり、モジュール間の依存関係(つまり「ファイルセット」)は記録されないため、複雑さが増します。

ので、復習に:セットアップの

  • やすさ:すべての言及DVCSは、セットアップが簡単です。ユーザーアクセスの面での管理が考慮に入れなければなりません。
  • ワークフローの設定:DVCSは、あらゆる種類のワークフローをサポートします。集中管理されたワークフローでも、公的なものでも、私的なワークフローでも、... ....バグを発見することに関して、彼らは何らかの種類のbisect processをサポートします。
  • メトリックの生成:「管理されているコードに関するメトリック」を意味する場合、変更されたものに関する多くの情報を表示できる完全なログシステムをサポートしています。
    「ツールに関するメトリクス」(プロセスの速度やデータの占有量)では、上記のDVCSツールはSVNよりもはるかに高速と見なされます(here as an example参照)。
  • ClearCaseに使用されている開発者にとって妥当な学習曲線です.GUIは学習曲線を緩和する要素になりますが、この「core concepts」の回答が示すとおり、DVCSはClearCaseと大きく異なります。
  • Windows開発:これらはすべてWindowsプラットフォーム上でうまく動作しますが、MercurialやBazaarには若干の利点(より良い統合性)があります。
  • 課題追跡の統合は、(それが石で設定されていないが、おそらく、Redmineのことになるだろう):Redmineのは、現在サポートしているそれらのほとんど(と、それは最初にやったとしてだけではなく、SVN)
3

が問題何ですかGitと?私はWindows上でGitを使っています。それはうまく動作します。 Git Extensionsは、エクスプローラの統合をご希望の場合は非常に便利です。

+1

Linuxと比較してWindowsでの動作が遅いです。そしてTortoiseGitは今は本当に使えません。それが問題だ。 –

+0

あなたがWindowsのユーザーであれば、なぜLinux上でどれぐらい速いのですか?重要なのは、あなたのWindowsの選択肢(その速さ)と比較する方法です。カメはまったく重要ではありません。 Gitguiはうまく動作し、Gitの機能を中心に設計されています。 –

1

私はクリアケースの経験はありませんが、次のように役立つことを願っています。あなたの質問には、決定する前に考慮するいくつかの情報が記載されています。最初にどれくらいのソースコードを持っていますか? Linuxカーネルのような本当に巨大なプロジェクトでは、SVNは中規模から大規模のプロジェクトで優れていますが、Gitはより良いパフォーマンスを提供します。次に使用しているIDEは何ですか? Mercurial、Git、SVNはすべてビジュアルスタジオとEclipseプラグインを持っていますが、その品質は非常に優れています。 Redmineに関するWikipediaの記事によると、あなたが目にしているSCMシステムのどれかが統合されます。次のブログは、SCMシステムを書いている人のために書かれているので、あなたに役立つかもしれません。 http://www.ericsink.com/

+0

Git/VSの統合に関するSOの質問がありました。私はそれを見つけることができませんが、私のコメント(まだ立っている)は、Gitのような編集/マージシステムでは、VSの統合が本当に必要ではないということです。 *あなたのVSのもの(コード、デバッグなど)を* * *マージします。いつでもロックを管理する必要があるように、開発中は常にリビジョン管理システムに戻る必要はありません。 –

+0

これは真実ですが、開発者はコマンドライン版のコントロールではなくIDEを使用することがよくあります。そのため、基本的な統合を行い、他のすべてのコンポーネントをマージすることができれば、IDEでプルおよびマージをサポートすることができます。 – Jared

0

Windowsで実行する必要がある要件を削除できる場合は、Aegisをお勧めします。

+0

リンクをありがとう。最初にそれを見てから、私が取り組んでいる環境のタイプに適切な "感じ"を持っています。私はWindows以外のシステムでClearCaseに代わるものとして、他の人にそのことを知らせる予定です。 – deterb

+0

もっと詳しく見ると、Aegisはバージョン管理システムではありません。自動テスト、共有オブジェクトライブラリ、コードレビューなどの追加機能を提供するために、バージョン管理システム(およびその他のツール)を包むように設計されています。私はそれが他の文脈でも役に立つと思うので、共有することに感謝します。 – deterb