5

問題:

数百万の SLoC にまたがる巨大なコード ベースは、大群の二流/三流プログラマー (彼らのほとんどはあまり気にしない) によって維持 (サポート/積極的な拡張など) されています。何十年も前に、CVS を基盤として使用するラッパーを導入した賢い人はほとんどいませんでした。このシステムは現在の世代の開発者によって使用されています (開発者の 90% は CVS を直接使用したことがないか、別のコマンド ライン ソース管理システムについて聞いたり使用したりしたことがありません)。 .

効果:

CVS の使用と、複数のモジュールにまたがって作業する複数のチーム。必然的に => CVS ブランチがトランクにマージされます。これは、最も宗教的かつ儀式的に可能な方法で実践される活動です。[=>力ずく。数週間前に計画され、2/4日間12人の男が参加しました。数百 (場合によっては数千) のソースが手動で処理されます。 おもしろいことに、関係者は修正の元の所有者ではなく、差分をチェックするだけです。本当に、冗談ではありません!] これにより、ライブラリ/モジュール/機能の健全性に多くの矛盾が生じ、これらのマージ中の回帰による欠陥を修正するために多大な労力が費やされます。

そして今、質問:

いくつかの前向きな変化をもたらし、プログラマー/マネージャー、および環境内の他のすべての人の生活を改善できる代替ソース管理システムは何ですか?

周りの誰もが代替品を見つけることを考えずにクールエイドを飲んだ(そして「これがどのように物事が行われるか」を歌っている)ように見えるので、誰かがそれをする時が来ました. ただし、システムを使用する人々の種類を考慮すると、次の点に留意する必要があります。

  1. 使いやすく、理解しやすく、Joe Coder でさえ大騒ぎせずに使用できるはずです。(とにかく、これは必要ありません。ラッパーは実際のボンネットの下のものを人々から隠してしまうからです)
  2. いつでも複数 (約 30) のアクティブなブランチを持つ巨大なコードベース (複数の言語にわたるソースで構成される)。
  3. さまざまなブランチへの簡単なマージ。(変更の量が非常に大きいことを考慮すると)
  4. 利用可能であれば、システムの商用サポートは素晴らしいでしょう。
  5. 開発は UNIX サーバー上で行われます (少なくとも HP-UX/Solaris 上で実行する必要があります)。
  6. 適切にスケーリングする必要があります (数千のユーザー/数十万のソース)
  7. 良いドキュメンテーション
  8. 変更/コピーを比較/表示するためのシンプルで明快なブラウザベースのインターフェース。
  9. リポジトリにはバイナリ ファイルはありませんので、気にする必要はありません。
  10. 現在のリポジトリの内容を新しいシステムにインポートするためのプロビジョニング。

だから、提案してください。希望 && 方法はありますか? :) gitのようなものは完全に拒否されると確信しています(彼らは「gitは賢い人のためだけのものである」と信じています)

編集: 私も Mercurial と BitKeeper を念頭に置いており、チェーンの上流の人々に言及しました。最善の結果を期待!ありがとう!:)

4

5 に答える 5

8

良い、速い、安いという古いことわざを聞いたことがあるかもしれません。ここでも同じです。豊富な機能セットには、ある程度の複雑さが伴います。複雑なツールを選択せず​​に、その要件リストを満たすことができるとは思えません。幸運を祈りますが、私だったら良いツールを選び、ユーザーのトレーニングに時間を投資します。

于 2010-07-23T16:07:12.297 に答える
3

Mercurial が私の提案です。「複雑さ」という認識を避けるために、 このサイトをご覧ください。

これは「Joel Spolsky による Mercurial DVCS のわかりやすい紹介」であり、編集、コミット、マージなどを段階的に行うユーザー向けの優れたチュートリアル (およびサブバージョンの回復部分) を提供します。

于 2010-07-23T17:01:44.410 に答える
3
gitのようなものは完全に拒否されると確信しています(彼らは「gitは賢い人のためだけのものである」と信じています)

純粋に「認識」の問題である場合、つまり git が複雑すぎると「認識」している場合は、Mercurial または Bazaar を提案してみてください。不正確な先入観を形成するほど十分に精通していない可能性があります。

于 2010-07-23T16:12:03.697 に答える
1

Subversion に移行するという提案は破棄します。クールな子供たちが使っているのは魅力的な分散ソース管理ではありませんが、これが私が提案している理由です。SVN は CVS から簡単に移行できるはずです。これは確立されており、よく使用されており、概念的にはいくつかの点で CVS に似ています。(さて、あなたの開発者がそこから遠く離れている場合、それは役に立たないかもしれません.)

多くの人がこの移行を行っています。コードを CVS から SVN に移行するためのユーティリティがあります (ただし、多少の苦労はあります)。

それはあなたの要件のほとんどに対処する必要があります (ただし、マージがどれほど簡単かについては議論の余地があります)。

要するに、あなたの課題はテクノロジーではありません。採用です。あなたのチームが変わりたくないのなら、変わりません。そして悲しいことに、どんな解決策も失敗に終わります。まず、変更が必要であることを彼らに納得させなければなりません。最善の策は、彼らの怠惰さに訴え(ポジティブな意味で)、彼らが変われば「人生が良くなる」ことを示すことです.

于 2010-07-23T17:21:52.600 に答える
0

どのツールもトレーニングが必要です。他のシステムに移行することに自信がある場合は、長期的に非常に役立つように、しばらくの間、人材のトレーニングに費やすことは完全に理にかなっていると言えます。要件セットを見て、svnまたはsosを見てみてください。sos を使用する利点は、問題に対して 24 時間年中無休のサポートを受けることができることです。大規模なデータを処理できます。また、クールなブラウザ インターフェイスも備えています。

于 2010-07-23T21:20:24.957 に答える