私は現在IBMRationalClearCaseの学習に苦労しているので、専門家の意見を聞きたいと思います。
SubversionやGitのような他のバージョン管理システムと比較した場合の長所/短所に特に興味があります。
私は現在IBMRationalClearCaseの学習に苦労しているので、専門家の意見を聞きたいと思います。
SubversionやGitのような他のバージョン管理システムと比較した場合の長所/短所に特に興味があります。
ClearCaseとGitの良い比較は、私のSOの回答で見つけることができます:
「すべての開発者が知っておくべき基本的なClearCaseの概念は何ですか?」、いくつかの大きな違い(およびClearCaseのいくつかの欠点)を示しています
ClearCaseの最も重要な欠点は、古い「ファイル中心」のアプローチです(SVN、Git、Perforceのような「リポジトリ
中心」とは対照的です...)
。つまり、各チェックアウトまたはチェックインはファイルごとに行われます。操作のアトミック性はファイルレベルです。これを非常に冗長なプロトコルと、開発者ワークステーションとVOBサーバーの間に潜在的に複数のノードがあるネットワークと
組み合わせると、かなり低速で非効率的なファイルサーバー(ClearCaseがコアになります)になってしまう可能性があります。
ファイルごとの操作とは、次のことを意味します。遅い再帰操作(再帰チェックアウトや再帰的な「ソース管理への追加」などclearfsimport
)。
そのおしゃべりなプロトコルの副作用を軽減するには、高速LANが必須です。
考慮すべきもう1つの側面は、一元化された側面です(マルチサイトで複製されたVOB機能を使用して「分散」できますが)
ネットワークがVOBへのアクセスを許可しない場合、開発者は次のことができます。
Vobを複製することで、分散VCS機能を利用できます。
だが:
「ClearCaseの機能を活用する方法」で説明したように、動的ビューは優れています(ディスクにコピーせずにネットワーク経由でデータを表示する方法)が、主な機能はUCMのままです。複雑なワークフローを持つ大きなプロジェクト。
その面でのいくつかの欠点:
UCMを使用せずにClearCaseを使用するということは、次のポリシーを定義する必要があることを意味します。
cleartool find
"リクエストに削減されます。ClearCaseの権利管理は、完全にシステムの権利に基づいて構築されています。
つまり、ユーザーを正しいシステムグループに登録する必要があります。これは、ユーザーが適切に登録するためにITサービスへのチケットを入力する必要がある場合に必ずしも簡単に行うことができるとは限りません。それに異種環境
(Windowsのユーザー、Unixのサーバー)
を追加すると、WindowsだけでなくUnixにもユーザーを登録する必要があります。(同じログイン/グループ名で)。2つの世界の間に何らかのLDAP対応を配置しない限り(Centrifyなど)
cleartool
"はClearCaseコマンドラインインターフェイスです)。つまり、(Perlまたは他の言語の)スクリプトは、これらのcleartool
コマンドの出力の解析で構成されます)ビューストレージは、SubVersionの「.svn」と同等ですが、SubVersionワークスペースのすべてのディレクトリに多数の.svnがあるのではなく、ビューごとに1つの「ビューストレージ」しかない点が異なります。それはいいです。
悪い点は、ビュー内の各操作(単純な " ls
"、チェックアウト、チェックなど)によって、ビューサーバーを管理するview_serverプロセスへのネットワーク要求がトリガーされることです。
2つのオプション:
最初のモードとは、進行中の作業(プライベートファイルまたはチェックアウトされたファイル)を自分でバックアップする必要があることを意味します
。2番目のモードとは、ワークステーションが使用できなくなる可能性があることを意味します。スナップショットビューのファイル)
動的ビューに関するサイドディスカッション:
「動的ビュー」の側面に追加すると、1つの利点(動的)と1つの欠点(動的)があります。動的ビューは、小さなチーム間で小さな
開発
をすばやく共有するための単純な環境を設定するのに最適です。小さな開発作業の場合、動的ビューは、2人または3人の開発者が常に連絡を取り合い、コミットが中断したときに即座に確認するのに役立ちます。他のビューで何か。
より複雑な開発作業の場合は、スナップショットビューによって提供される人為的な「分離」が望ましいです(スナップショットビューを更新(または「更新」)したときにのみ変更が表示されます)
実際の分岐した開発作業またはコースでは、真のコード分離を実現するためにブランチが必要です(マージはある時点で必要になります。これは、ClearCaseがファイルごとにゆっくりではありますが、非常にうまく処理します)
重要なのは、正しい理由で両方を使用できるということです。
注:小さなチームとは、「小さなプロジェクト」を意味するものではありません。ClearCaseは大規模なプロジェクトに最適ですが、動的ビューを使用する場合は、ブランチごとに小さな開発作業を分離するために「タスクブランチ」を設定する必要があります。つまり、「小さなチーム」(大きなチームのサブセット)です。 )効率的に作業でき、メンバー間で作業をすばやく共有できます。
全員が何かをしている「メイン」ブランチで動的ビューを使用すると、関係のない「ビルドブレーク」が発生する可能性があるため、チェックインすると「殺され」ます。現在の開発努力
では、動的ビューの使用法が不十分になり、他の使用法を忘れてしまいます。
すべての(チェックアウトされていない)ファイルはネットワーク経由で読み取られるため、動的ビューで直接開発することが常に最良のオプションであるとは限りません。
つまり、IDEに必要なdll、jar、またはexeはネットワーク経由でアクセスされるため、コンパイルプロセスが大幅に遅くなる可能性があります。
可能な解決策:
コストはかなり明らかな欠点です。ライセンスコストだけでなく、ClearCaseの第一人者の給与のコストも。ClearCaseを使用していることを私が知っているほとんどすべての会社には、手に負えない獣を飼いならすことが唯一の目的である人が少なくとも1人いるようです。
フルタイムの乳母を必要とするほど複雑であるという事実も心配です。
システムの絶対的な悪夢。VSSに戻れたらいいなと思いました!(SubversionやGitのような最新のソース管理システムは気にしないでください!)
基本的に、それは遅く、複雑で、地獄のように信頼できません。ああ、それは途方もなく高価だと言いましたか?彼らがそれを売ることができる唯一の方法は、製品を使用したことがなく、使用することもない意思決定者と話すことです!世界中の開発者がそれを購入することはないと確信しています。
アトミックコミットとチェンジセットは、ClearCaseに対する私の最大の不満です。バグ修正またはリファクタリングの一環として5つのファイルをチェックインするとします。次に、何かが台無しになっていることが発見され、元に戻す必要があります。それらがどの5つのファイルであり、それぞれがどのバージョンである必要があるかを見つけて頑張ってください。しかし、一歩後退しましょう。これらの5つのファイルの編集が完了したので、コミットします。最初の4つは問題なく通過します。最後の1つは、大規模なマージが必要です。他の4つのファイルはすでにチェックインされています。最後のファイルで必要な変更が完了するのを待ちません。誰も更新したり、動的ビューを使用したりしないことを願っています。継続的インテグレーションビルドサーバーも失敗します。
チェックインする必要のあるファイルでいっぱいの新しいディレクトリを作成することもありますが、完了するまでチェックインしたくありません。それは早く、すべてがまだ不安定です、なぜあなたがすぐに削除するかもしれないので物事をチェックするのですか?OK、今のところ大丈夫です。次に、チェックインします。新しく作成したフォルダーをソース管理に追加します。ClearCaseは再帰的ではないため、その単一のフォルダーのみがチェックインされます。SVNを使用すると、そのフォルダーとその下のすべてが、選択に応じて追加されます。開発者はすべてを追加することを忘れないでください。そうしないと、多くのファイルが失われます。
ClearCaseはファイルとフォルダーを所有しているため、最初にチェックアウトしない限り、何も変更できません。Eclipseプラグインは、ここで多くの厄介な問題を取り除きます。すばやく変更するためにviでファイルを開いた回数はわかりませんが、最初にチェックアウトするのを忘れていたことがわかりました。チェックアウトも再帰的ではありません。
変更セットがないと、更新が非常に遅くなる可能性があります。スナップショットビューで更新すると、変更されたファイルだけでなく、すべてのファイルが更新されます。20,000以上のファイルを使用するプロジェクトに取り組みました。私は自分の作業用マシンにリモートでアクセスし、更新を開始してから、ドライブして作業します。コーヒーを飲む; それが終わっている間に私の机に行きなさい。それは誇張のように聞こえるかもしれませんが、残念ながらそうではありません。
非常に小さなチームでない限り、動的ビューはひどいものです。その場合、なぜClearCaseを持っているのですか?誰かが他のすべての人の意見を壊したファイルをチェックインしたために、無数の人々の意見がうんざりしているのを見てきました。常に自分のビューで競合を更新してマージする必要があります。そうすれば、変更はあなたにのみ影響します。動的ビューでは、プッシュバックする前にマージすることはできません。あなたはただコミットして希望します。
コストはおそらく大きな問題ではないことは知っていますが、会社のためにお金を稼ぐ開発者は、楽しいイベントや新しい機器(一般的な追加であるClearQuestライセンスに応じて)に5万ドルから10万ドルを費やすことを楽しんでいます(椅子、モニターなど)。IBMは、ClearCaseを継続するためのスタッフを配置することをお勧めします。物事がクラッシュして燃えないようにするのではなく、それらの人々を再利用して会社の収益を生み出してみませんか?
切り替えない理由のいくつか:
ClearCaseが他のファイルよりも優れている唯一のことは、他のファイルを別のブランチと同じトラックに保ちながら、個々のファイルをブランチすることです。
Clearcaseで行ったことはすべて、常に難しいようです。一方、私は他のシステムでそのような印象を持ったことはありません(たまにCVSを除いて)。
私はSVN、CVS、Clearcase、およびMercurialを使用しました。
ClearCaseでの私の経験は惨事でした。そして、常駐の専門家が必要であるというDonの2番目の声明を紹介します。残念ながら、複数の専門家がいました。私はCVSや他のバージョン管理システムの経験があり、概念に精通していましたが、ClearCaseのドキュメントが理解できないことに気づき、何度か助けを求めなければなりませんでした。さまざまな専門家から、実際にCDを壊したところまで相反するアドバイスがありました。つまり、UNIXシェルでClearCaseコマンドを発行した後、「cd」コマンドが失敗し、エラーメッセージが表示されました。
バージョン管理システムの基本的なタスクは非常に簡単です。正直なところ、他のコマンドとうまく機能するファイルスキームを使用すれば、半ダースのコマンドで十分だと思います。私には、ClearCaseは、製品を洗練された強力なものに見せるために、マーケティング担当者が意図的に物事を複雑にした結果のように見えます。シンプルで安全、信頼性の高い方法で動作するように構成できると聞きましたが、これも専門家のサービスが必要です。箱から出してすぐに、電動スイスアーミーナイフのようになります。
ClearCaseに関連して私が経験したことはすべて、非効率的で、醜く、過度に複雑で、遅く、混乱し、高価で、不便です。
それはちょうどそれをすべて間違ってしまったマネージャーやエンジニアを引き付けるようです。
くそー、IBMとRationalは、そのようなくだらない製品を販売するために素晴らしい営業担当者を持っている必要があります。
ここに示した多くの理由により、CCからGitに移行しているところです。CCやその他の商用ソース管理システムに近づかない理由を1つ付け加えたいと思います。
重要なビジネスデータは、コード、そのバージョン履歴、およびコミットコメントなどのすべてのメタデータであり、誰がいつチェックインしたかです。
すべてのソフトウェアの耐用年数は限られています。コード、バグ、顧客データなど、重要なビジネスデータを飲み込む新しいシステムを導入するときは、常に自問自答する必要があります。データを再度取得するにはどうすればよいですか。その質問に答えられない場合は、そのシステムを導入しないでください。
移行すると、ほとんどの履歴とすべてのメタデータが失われました。基本的に、リリースされたバージョンに対応する履歴しかありませんが、顧客の要求に応じて行われた変更に関する情報は失われます(そのデータはカスタマーサポートとバグチケットシステムにあるため、完全に失われるわけではありませんが、ソースコードはなくなりました)。
これは、短期から中期的には、私たちにとって厄介な問題と問題の間のどこかになります。数年後には、それはもはや重要ではなくなりますが、おそらく1〜3年は重要になります。
(CCを他のSCMに移行するための商用ツールがありますが、それらは私たちのニーズに十分であるとは見なされず、それが実現可能であったとは思えません。私たちが行った最小限のエクスポートには十分な時間がかかりました。)
学んだ教訓は次のとおりです。重要なビジネスデータをプロプライエタリシステムに決して委託しないでください。
アトミックコミットはありません
アトミックコミットはサポートされていないため、ファイルをチェックインすると、特定の状態に戻すのは非常に困難です。複数のファイルをチェックインする場合、各ファイルはチェックイン自体ではなく、新しいリビジョン(CVSと同様)を取得します。これは重要な機能だと思います。単一のファイルを元に戻すことはほとんどなく、コミットアクション(タスクをマップする必要がある)を完了する必要があるためです。ClearCaseを使用すると、ラベルを使用することによってのみ特定の状態に戻すことができます。実際には、チェックインごとにClearCaseラベルを使用するのはやり過ぎであり、したがって実行されません。
安っぽいユーザーインターフェース
ClearCaseExplorerのGUIは単なる冗談です。使いやすさと醜い見た目で恐ろしい。異なる、そしてしばしば必要な機能は提供されていません(例えば、アーティファクトで作業されたものを再帰的にチェックインする)。cygwinで使用されるコマンドラインツールcleartoolの方がはるかに優れていますが、ソース管理に新しいファイル/フォルダーを再帰的に追加するなど、まだ利用できないものもあります。これを回避するために50行のコード長のスクリプトを読んだ場合、私は頭を笑わせる必要があります。
高度な管理努力
ClearCase beastの管理は、明白または軽量ではありません(CVS、subversion、Gitなどの他のscmシステムとは異なります)。実行を継続するために、かなりの数の専任のClearCaseエキスパートを配置することを期待してください。
ひどいパフォーマンス
SCMツールとのインターフェース中に開発者を待たせることは、ハンドブレーキを有効にして運転するようなものです。それはあなたの脳とあなたの仕事を遅くします。スナップショットビューに新しいファイルを取得するには、10Kのアーティファクトで約30分かかります。同じ量の更新(アーティファクトは変更されていません)には、約5分かかります。多くの実験を行い、さまざまな最新のビュー間をジャンプする場合は、多くの待機を意味します。ファイルで作業していて、ファイルをチェックインまたは更新したい場合は、さらに悪化します。チェックアウト、チェックイン、およびソース管理サイクルへの追加には約10〜15秒かかりますが、これは明らかに悪夢です。タイプまたはメソッドの名前変更/移動をリファクタリングする場合、非常に煩わしくなります(多くのファイルが影響を受ける可能性があります)。
分散開発のサポートの欠如
今日、ソフトウェア開発は分散型のものであることがよくあります(開発者は同じ製品/プロジェクトに取り組んでいる世界中に散らばっています)。ClearCaseはオフライン作業にはあまり適していないため、これには明らかに適していません。チェックアウト(ファイル/フォルダーを編集する前のアクション)を実行するには、ネットワークに接続している必要があります。ここではハイジャックオプションを使用できますが、これは機能としての回避策です(基本的にはファイルシステム上のファイルのロックを解除するだけです)。開発サイトがClearCaseサーバーから遠く離れている場合、チェックイン/チェックアウトの待ち時間が大幅に増加し、まったく使用できなくなる可能性があります。ClearCase Multisite(scm DBレプリカテクノロジー)を使用するなどの回避策がありますが、追加料金を支払う必要があり、管理するのは簡単ではありません。
代替手段としてのGit
オープンソースの大ファン+サポーターですが、私はまだ良いソフトウェアにお金を払うつもりです。しかし、IBMモンスターのClearCaseを見ると、ここではお金を投資しません。これらすべての欠点が議論されており、さらに多くのIBMは、製品を大幅に改善するためにお金を投資していないようです。最近、Git scmを見て、特にClearCaseの主な長所である分岐+マージ機能が非常によく見えました。
この情報はhttp://www.aldana-online.de/2009/03/19/reasons-why-you-should-stay-away-from-clearcase/から取得したものです
おそらくこれまでに作られた最悪のソフトウェア。私は合理的なものを使用する会社では働きません。CCが完全にクラッシュし、動的ビルドでワークステーションを頻繁に再起動することは別として。ソース管理に何かをプッシュしていて、CCが最善を尽くしてクラッシュするとどうなりますか?次に、コードはlost + foundに入れられ、どこかにバックアップされますか?いいえ、それは永遠になくなりました。したがって、この巨大な高価なソフトウェアを使用するというひどい状況に陥ったことがある場合は、すべての複製を保管してください。良い仕事Rational/IBM。ソース管理の最も重要な部分である信頼性をキャプチャする方法。ゆっくり死ぬ。
ClearCaseの欠点-ここで最も詳細な投稿への追加。
マージツールは価値がありません。それはほとんどあなたを助けません、あなたが下した決定を覚えていません、それはただ栄光の違いです。
マージツールは、ディレクトリをチェックアウトして、マージが必要かどうかを確認する必要があります。その少し狂気。
私は仕事でBitKeeperを使用しています(Gitを想定します)。競合がある場合でも2つのリポジトリをマージすることは、コマンドラインを使用しても非常に簡単でユーザーフレンドリーですが、多数のGUIツールを備えたClearCaseは長くて骨の折れるプロセスであり、エラーが発生しやすくなります。 。
すべてのGUIツールには大量のレイテンシが必要です。ファイルで何ができるかを確認する場合でも、高速接続が必要です。そのため、自宅で作業しているファイルをClearCaseツールで右クリックすると、ネットワーク要件が非常に大きいため、高速インターネットを使用する場合に1〜2分かかる場合があります。
ビューの仕様がチームと異なる場合、誰かがリポジトリやチェックインを完全に台無しにする可能性があります。これは、誰もブランチをチェックアウトできないというのは非常に正気ではありません。偶然に適切なものを提供する適切なビュー仕様が必要です。全体のコンセプトは素晴らしく柔軟ですが、99%の確率で多くの苦痛を引き起こします。CCツールはUTF-8を受け入れないため、コピーして貼り付けることができないため、Microsoft Outlookを介して仕様を電子メールで送信できないことを述べましたか?
私はCCについて何も言うことはありません。2社で2年間使って、ずっと幸せな気持ちで一気に落としました。また、自宅で自分のプロジェクトを試すことは不可能です。そのため、自宅でSVNやGitを学び、職場でClearCaseの苦痛を経験することを余儀なくされます。私が知っている人は誰もCCを自発的に使用したことがありません。彼らはそれを使用するのは、職場の一部のマネージャーがCCが救いへの道であると判断し、全員がCCに移行することを余儀なくされたためです。実際、私の最後の会社はCVSからClearCaseに移行し、1年後にClearCaseからSVNに移行しました。それは嫌いでした。
ClearCaseは、あなたにノーと言わせるだけのことではありません。まるでアリがはびこっている家に住んでいるようなものです。それぞれのアリはせいぜい小さな不便ですが、侵入はあなたを怒らせます。
ここで、いくつかのコメントを実際の投稿にまとめようとしています。いくつかの点を除いて、私は実際には一方が他方よりも優れていることをあなたに説得するためにここにいるわけではありません。
ClearCaseは優れたツールですが、複雑です道具。これを回避する方法はありません。「簡単インストール」モードはありません。:-)技術的な観点からは、ClearCaseができないことはgitやSVNでできません(ただし、オープンソースプロジェクトは既存の分類法を発明する傾向があるため、用語は異なることがよくあります)が、いくつかのことは間違いなく簡単です。 /設計に応じて、特定のシステムではより困難になります。ClearCaseの「スナップショット」ビューは、SVNまたはCVSからリポジトリをチェックアウトした場合と基本的に同じです。これは、マシン上のソースコードのローカルコピーであり、バージョン履歴をクエリするためのツール用のポインタが中央サーバーに戻されます。これらのビューは、作成後にClearCaseサーバーにネットワーク接続しなくても操作でき、「リサイクル」できます。たとえば、別のブランチで作業するために移動する場合に、リポジトリ全体を再度ダウンロードしないようにするためです。「ダイナミックビュー」は基本的にClearCaseの発明であり、LANの標準動作モードです。これらはSVNリポジトリをチェックアウトするのと同じように見えますが、変更を加えるまで実際にはファイルをコピーしません。このようにして、ビューはすぐに使用可能になりますが、メインのClearcaseサーバーが使用できない場合は明らかに操作できず、待ち時間の長い接続で操作するのは不快です。また、作成されたサーバーにアクセスできる任意のマシンにネットワークドライブとしてマウントできるという便利さもあるため、Windowsワークステーションが停止した場合でも、別のワークステーションにログオンしてビューをマウントし、取得することができます。仕事に戻る、
また、これは独自の段落に値します....clearmergeは入場料だけの価値がほとんどあります。これは、私がこれまでに使用した中で最高のマージツールです。高品質のマージツールがないためにSCMで多くの悪い習慣が生まれたと確信しています。そのため、CVSユーザーはブランチの適切な使用法を学ぶことができず、このブランチへの恐れは特に理由もなく今日にまで広がっています。
そうは言っても、ClearCaseを使用しない理由を探しているのであれば、見つけるのは難しくありませんが、それは間違った方法だと思います。本当に、ClearCaseを使用しない理由ではなく、ClearCaseを使用する正当な理由を考え出す必要があります。ClearCaseがツールとして多すぎる、またはツールが複雑すぎると想定して、SCMの状況に陥り、それを使用するように促す状況があるかどうかを確認する必要があります。IBMまたはRationalのロゴがあるのは正当な理由ではありません..:-)
次のすべてのステートメントに「はい」と答えられない限り、ClearCaseを検討することすらありません。
私の経験は主にCC、CVS、SVNによって制限されています。原則として、CCは技術的に能力があり、エンタープライズ対応であり、最新のVCSと同等の機能を備えています。しかし、それはどんな人指向の環境でもそれを使用できないようにするいくつかの欠陥を持っています。プロセス指向の環境の場合はおそらくより適切ですが、そのような環境自体が適切であるとは思えません。たぶん、軍隊、宇宙、または医療用ソフトウェアでは、私にはわかりません。とにかく、これらのドメインでも、適切でさらに使いやすいツールがあると思います。
CCには、技術的に優れたVCSであることに加えて、いくつかの明確な利点があります。
私の意見では、それらの使用は最後のものを除いて制限されています。そしてそれらは欠陥を補償しません。動的ビューは理論的には優れていますが、実際には常に利用できるとは限りません。バージョンツリーは他のVCSでの使用がはるかに少ないですが、ブランチが急増しているためCCでは必要です(6を参照)。私が知っているように、トリガーは非常に詳細で有能ですが、ほとんどの実用的なタスクにはSVNフックで十分だと思います。そして今、主にユーザビリティに関係する不利な点について:
cleartool
、動的なビューだけを残します。ClearCaseは、外部から見ると非常に強力に見えます。しかし実際には、基本的なワークフローに使用する必要のあるコマンドとオプションの数が非常に多いため、これらがいくつかのエイリアスやスクリプトの背後に隠れてしまい、Visual Sourceの使いやすさで、CVSよりも強力ではなくなります。安全な。また、スクリプトで許可されているよりも少し複雑なことをしたいときはいつでも、胃の中で気分が悪くなります。
これを、外部からは複雑に見えるGitと比較してください。ただし、1週間使用すると、完全に制御できるようになります。リポジトリモデルは理解しやすく、信じられないほど強力です。簡単に理解できるので、日常のワークフローの表面を掘り下げるのは実際に楽しいことです。
たとえば、スナップショットビューでファイルの非HEADバージョンを表示する方法などの簡単なタスクを理解するには、数時間かかり、最終的には完全なハックでした。楽しい種類のハックでもありません。
しかし、Gitでは、一部の変更のみをインタラクティブにコミットする方法(残りは後で使用する方法)など、一見複雑に見えるタスクを理解するのはとても楽しかったです。VCSによってコードを整理し、歴史は私たちがVCSをどのように使用したかという偶然ではなく、私に合った方法での歴史です。「Gitとは、「あなたが持っているべき」と言う必要がないことを意味します」。
私の仕事では、ClearCase内であっても、あらゆる種類の軽量タスクにGitを使用しています。たとえば、私はTDDを実行し、一連のテストに合格してリファクタリングしようとしているときはいつでもGitにコミットします。タスクが最終的に完了すると、ClearCaseにチェックインし、Gitを使用して変更内容を正確に確認できます。ClearCaseを取得して、いくつかのファイル間で差分を生成するようにしてください。それはできません。Googleを使用して、人々がこれを回避しようとしたさまざまなハックを見つけてください。これは、バージョン管理がすぐに実行できることであり、簡単なはずです。CVSは何十年もこれを持っています!
私の意見では?それを持っている唯一の理由は?宗教的にRUPをフォローしている場合。
サポートはひどいです。私たちは何年もの間チケットを開いてきました。私たちのEclipseの第一人者は、Javaファイルを分解することにより、実際にEclipseプラグインのバグをローカルで約30分で修正しました。しかし、チケットはまだレベル1のサポートを超えていません。時々、彼らはそれをこっそり閉じようとするか、「最新バージョンを試すために」私たちにpingを返そうとします(私たちが彼らに自分で試すことができる複製レシピを送ったとしても)。
バージポールに触れないでください。
パフォーマンス。
ClearCaseは強力で安定していますが(適切に保守および監視されている場合)、低速です。時々地質。
動的ビュービューは、ビルドに時間がかかります。スナップショットビューは、更新(大規模なプロジェクトの場合は昼休み)またはチェックアウト(その日は家に帰る)に時間がかかる場合があります。
Clearcaseは非常に煩わしいため、実際に人々はそれについて詩を書くようになります。
http://digital-compulsion.blogspot.com/2007/01/poetic-pathetic-version-control.html
http://grahamis.com/blog/2007/01/24/if-it-was-free-no-one-would-download-it/
開発者は、作業を行う前にクリアケースを理解するために半分の時間を費やします。理解したら、gitをローカルにインストールし、必要に応じてクリアケースリポジトリにプッシュするだけです。
専用のClearcase管理者を採用する必要があります。
私は最近、同様の状況に苦しむ必要がありました。たぶんあなたは私の話から学ぶことができます。
私が新しく割り当てられたチームは、複雑でエラーが発生しやすい方法で重量級のツールを使用していました。私は最初に、選択したツールとプロセスでそれらを販売しようとしました。この試みは惨めに失敗しました。私は、彼らがより簡単でより効果的な環境よりも、そのような厄介な環境を選ぶだろうと驚きました。彼らは懲戒処分を受けたいと思っていたことが判明し、苦痛なプロセスを使用することは彼らに懲戒処分を受けたと感じました。奇妙に聞こえますが、それは本当です。彼らには他にも多くの誤解がありました。彼らが何を求めているのかを理解した後、実際には同じツールスイート(Serena)を使い続けましたが、構成方法を大幅に変更しました。
あなたへの私のアドバイスは、あなたのチームにとって何が重要かを理解することです。ClearCaseをリッピングしても、彼らの興味に話さない限り、どこにも行き着きません。また、彼らが代替手段を使用したくない理由を見つけてください。基本的に、少し要件を収集し、ツールの選択をニーズに合わせます。オプションによっては、誰が知っているか、結局、ClearCaseが最良のオプションになる可能性があります。
ツールセットにはSVNを、スケーリング/ワークフローにはGitをお勧めします。また、可能な限りCCを回避することをお勧めします。(お金を数えないで、フルタイムの管理者を必要とするのは使用するのがとても苦痛であるという事実は完全な冗談です)
私はClearCaseに完全に反対しているわけではありませんが(長所はあります)、短所をリストアップします。
私にとって最大の欠点は、パフォーマンス(特に、VOBがマルチサイトまたはオフサイトの場合)と、潜在的に長いダウンタイムの両方です。
あなたが私のようで、大企業の一部として比較的小さなオフィスで働いている場合(オンサイトITがない場合)、Clearcaseサーバーがダウンすると、生産性が低下するだけでなく、適切な人材を確保するために、1日の作業の大部分が犠牲になる可能性があります。それを修正するために。
結論としては、自分がしていることに本当に必要な場合にのみ使用し、それを維持するための多額のIT予算があることを確認してください。
ClearCaseは、その上に別のバージョン管理システムを使用する場合にも完全に使用できます。個人的には、CCの上に水銀を使用すると非常にうまく機能することがわかります。
バージョン7.1の新しいバージョンの時点で、CCは、必要に応じて機能としてアトミックチェックインを提供します。個人的には本当に欲しくないのですが、「本質的な機能」だと思っている方もいらっしゃると思います。ある種の大規模なバージョンとして、一度に1つの大きなバルクが必要になることは決してありません。次にもう一度...必要に応じてオンにします。
だから...もはや議論ではありません。
過去4年間、ClearQuest(DR追跡/変更要求システム)と統合されたUCM ClearCaseを使用し、50人以上の開発者が参加しました。35Kを超えるDRと変更要求を処理する数千を超えるストリームを含む50を超えるUCMプロジェクトがあります。この期間中に、600を超える統合配信を公式に行い、最大6つの同時開発およびリリース作業を行いました。
私は、定期的な配信/マージおよび統合ビルドを実行できるバックアップを持つメインのCM/ClearCaseの担当者です。ネットワークとサーバーはITチームによってサポートされています。私が言えるのは、この膨大な開発努力のCM側からの問題はほとんどなく、ショーストッパーではなかったということだけです。私たちの開発者は、プロジェクト管理者からの要求に応じて新しいプロジェクト(ブランチ)が作成されるたびに、基本的なものと簡単な手順だけでトレーニングを受けました。
適切なCM/IT / ClearCase / Process / Managementサポートが不足しているため、ClearCaseについて不満を言う開発者が多すぎます。開発者は、SCMではなく開発に集中するか、ツールのスペシャリストになる必要があります。大規模なソフトウェア開発の場合、予算の少なくとも5〜7%をCMとツールのサポートに費やす必要があります。
LinuxでVOBからJDKを実行する。
それを試してみてください、あなたはLD_PRELOAD変数で遊ぶ必要があります(私は知っています!)
「専任者が必要」「複雑」などのポイント。
この問題を見つける際のここでの中心的な問題は、組織で構成管理(バージョン管理ではない)を実行するかどうかを定義する必要があることです。構成管理はプロジェクト管理に似ています。ツールがなくてもプロジェクト管理を実行でき、ツールがなくても構成管理を実行できます。多くの人がこれを理解するのに苦労しており、多くの人が構成管理はソフトウェアのソースなどをバージョン管理するツールと同等であると考えています......(したがって、サブバージョンまたは他のバージョン管理システムとの比較)
ClearCaseは、構成管理環境ERGOで使用するために構築されたソリューションです。構成マネージャーがあります(「プロジェクトマネージャーがあります」のように)。
ですから...ツールを管理するために専任の人がいるというあなたの認識では、何か非常に悪いことがあると思います。私の認識では、構成管理を行う専任の担当者がいて、エンドユーザーの観点からは、ツールに問題がある場合にのみ表示されますが、これは彼の仕事の1%にすぎないと見なしています。
したがって、(他のソフトウェアプロジェクトと同様に)実行する必要があることは、要件に戻り、組織が構成管理で望んでいることに関する要件のリストをまとめます。そして、はい、他のソフトウェアプロジェクトと同様に、特定の要件について他のユーザー(管理など)に完全に同意しないユーザー(開発者など)がいます。私がここで読んだいくつかの反応には重要な意味があります。
また、要件の組織リストと構成マネージャーが混在している場合は、IMHO ....選択は非常に明確です(www.cmcrossroads.comのフォーラムも参照してください)。
ClearCaseは、subversionやgitなどのバージョン管理下でソースを入力するエンドユーザー専用のツールではありません。これは、構成マネージャーが成熟した構成管理ツールを本当に必要としている理由の1%にすぎません。
そして...CMシステムの選択は、適切なプロジェクト管理ツールまたは適切なCRMシステムを選択することと同じように開発者に委ねられるべきではないと思います。開発者は、ツールの機能の特定の部分のエンドユーザーです。
私はここで一人になるかもしれませんが、ClearCaseは誰もが言うほど悪くはありません。巨大なリポジトリを処理できます。ダイナミックビューもかなりクールで強力な機能です。信頼性が高く、pefファイルベースのトリガーと制約、権限などを追加してカスタマイズできます。
残念ながら、それは価格、大きな価格が付属しています。コストがかかり、適切に運用するには、専任のITチームが適切に構成および保守する必要があります。それはBigCoにとっては本当に良いことですが、SmallFirmにとってはそれほど賢明な選択ではありません。
私はDVCSとgitの大ファンですが、BigCoがSVNとGitではなくClearCaseを選択する理由は理解できます。なぜ誰もがGitよりもSVNを選ぶのか理解できません;>
動的ビュー。完全に機能する半透明のファイルシステムを賞賛する必要があります。
大きな利点の1つは、知的財産が常に企業ネットワーク内にあることです。ラップトップは紛失/盗難に遭う可能性があり、ソースコードが危険にさらされることはありません。
もう1つは、ソースコードと変更されたファイルへの即時アクセスであり、何かをダウンロードするために時間を費やすことはありません。
それはそれが持っている目的のためにうまく機能します。
管理。6から7へのアップグレードを実行し、セミマス(159GB)VOBSを古いサーバーからSANストレージに移動するには、複数の1日にわたるダウンタイムをスケジュールする必要がありました。gitやsvn+svkのようなシステムでは、これはユーザーに影響を与えることなく、ほぼ自動的に一晩で実行できます。ユーザーは気付かないでしょう。変更をアップストリームにプッシュすることはできませんでしたが、引き続き機能します。ClearCaseまたはrawSVNを使用すると、リポジトリサーバーに翻弄されます。
ClearCase UCMは素晴らしいツールです。私はそれが好きで、SVN / mercurial / git / bzrに同様の機能を追加するために何かできると思います。フックスクリプトで実装できないわけではありませんが、それはカスタムの1回限りです。各サイト。UCMは非常に普及しており、誰もがそれを行っていますが、リポジトリでUCMを追跡する人はほとんどいません。:-/