0

私は、Simple Machines Forum (SMF 1.1.13) の (汚れた) 製品インストールを持っています。1回はクリーンインストールでした... 約5年前、20回の更新、40回の改造。コード ベースに直接パッチを適用したカスタム コードは言うまでもありません。これは楽しみのためのサイド プロジェクトとして開始されたもので、最初はコード管理のプラクティスはありませんでした。

現在、SMF 2 が (近づいて) 稼働中であり、アップグレードしたいと考えています。ただし、カスタム機能を置き去りにすることはありません。

読み続けてください。これは一般的なソフトウェア管理に関する質問であり、SMF サポートに関する質問ではありません...

カスタム機能を新しいコード ブランチに移植する最善の方法を見つけようとしています。

  • 場合によっては、1.1.x のカスタム機能が 2.0 に既に存在します。ええ、私には仕事がありません!
  • 場合によっては、2.0 用にバージョン管理された mod パッケージがあり、それらをクリーンな SMF 2 ビルドに直接インストールできます。ええ、私にとっては最小限の作業です!
  • 場合によっては、コードの移植が 2 つのバージョン間でかなり単純になります (たとえば、クエリやグローバル変数の構成にいくつかの小さな変更が加えられます)。(いくつかの機能/改造を 2.0 から 1.1.x に移植したので、それに慣れ始めています。)
  • 場合によっては、ほとんどゼロから機能を再開発する必要があります。

最後の 2 つのオプションは管理が難しくなります。

あるブランチから別のブランチに多数の変更を移植する方法について何か提案はありますか? それが私自身の社内コードでない場合、それはです。これが私の最初の計画です:

  • 1.1.x のクリーン バージョンと私の「ダーティ」プロダクション コードの違い
  • 各行の diff を機能にマップします (「そのコードの更新はカスタム タグ機能です。1 行ずつ移植する必要があります。あそこにあるのはギャラリーです。おそらく更新された mod をインストールできます。」)これは SOMUCHEASIER になります。一度に多数のファイルを確認する代わりに、統合されたレポートを生成する差分ツールがあれば。Google と SO の検索では、そのようなツールは見つかりませんでした -- ありますか?
  • クリーンな 2.0 ブランチをインストールする
  • 利用可能な更新された mod をインストールする
  • 袖をまくり上げて、機能ごとに差分を調べて (これが、統合された差分レポートが必要な理由です。ページごとに行うのは地獄です)、それらを元に戻します。

より良いアイデアはありますか?(リリース管理情報へのポインタは大歓迎ですが、もちろん、それは実際には私のコードではないため、私には制御が限られているという警告があります。)

さもないと?私のオプションは、カスタム機能を捨てるか (実際には実現可能ではありません)、古いブランチにとどまることだと思います。どちらも吸う。ヘルプ!

tl;dr : ディレクトリ全体の統合されたファイルごとの差分レポートを作成する差分ツールを教えてください。および/または、カスタム コードを移行するためのより簡単な方法を見つけるのを手伝ってください。

4

1 に答える 1

1

あなたの計画は一般的に最も実用的なアプローチですが、コードレベルの違いを探すことで間違った方向に向かっていると言えます。プロジェクトの存続期間をバージョン管理せず、適用された変更の簡潔な記録がないため、コードレベルでの違いを調べる際に、同じ変更を新しい実装に適用するために必要な情報が得られない可能性のある詳細レベルを探します。 。

コードレベルの変更について考えるのをやめ、アプリケーションレベルの機能と動作の変更を検討してください。どのような機能が導入されましたか?変更により、アプリケーションの動作はどのように異なりますか?

あなたは、長期間にわたって多くのバージョン管理されていない変更があったと言います-あなたが自由に使えるツールに関係なく、すべての変更を見つけることができず同じものを完全に表すために存在する機能と動作の変更を考慮する必要がありますアップグレードされた実装の機能と動作。

あなたはあなたのアプリケーションをよく知っています、あなたはそれを使います、そしてあなたはこれに気づかないかもしれないとしてもあなたが導入した機能の変更に感謝します。

  • バニラ2.0リリースをインストールする
  • 適切なmodをすべて適用する
  • 関連するスタイリングを適用する
  • 新しいシステムを使用し、動作の違いに注意し、これから必要な機能のセットを開発します

機能セットが完全である必要はありません。必要なすべての変更を理解しようとする段階で停止しないでください。これには時間がかかりすぎます。

  • 最新のフィードバックから収集した機能を適用します(理想的にはリバータブルmodを使用)
  • これから開発する際の動作の違いに注意してください。必要な機能のセットです。
  • 繰り返す
于 2011-05-24T19:47:57.077 に答える