0

ある時点で、C++ クラスのテストを開始することにしました。そこで、マスター ブランチに移動し、そこから「testing」という新しいブランチに分岐しました。いくつかの基本的なテストを含む /tests フォルダーを作成し、Automake.am ファイルの check_PROGRAMS の下にテスト プログラム名を追加しました (ビルド システムとして GNU Build System、別名 Autotools を使用しています)。

私のプロジェクトはまだ非常に初期段階にあるため、安定したバージョンはありません。ほとんどのインターフェイスはまだ構築中であるため、すべてのインターフェイスの完全なテストを作成するのは時期尚早です。インターフェイスは変更され、とにかく多くのテストを書き直さなければならないからです。しかし、テストしたい多かれ少なかれスタンドアロンのアルゴリズムをいくつか開発したブランチがあります。私の GUI は完全ではありませんが、アルゴリズムを使用する GUI を作成する前にアルゴリズムをテストしたいと考えています。

1. 「testing」を master にマージしてから、「master」をアルゴリズム ブランチにマージする 2. 「testing」をアルゴリズム ブランチにマージする 3. マージせずに、アルゴリズム ブランチに /tests フォルダを作成するだけです今のところ

一部のブランチでは、初期段階であるため、一部のファイルの名前が変更または削除されているため、testing/master をアルゴリズム ブランチにマージすると、無関係なテストでいっぱいの tests フォルダーが作成されます。しかし、アルゴリズム インターフェイスは、完全にテストする準備が整い、安定して使用できるようになるプロジェクトの最初の部分です。 1 つはアルゴリズムのテストです。これは、準備が整ったインターフェイスを備えた最初の部分であるため、そこでの変更は期待していません。テストで検出したバグを修正するだけです。

ここで最適なマージ/マージしない戦略は何でしょうか?

4

3 に答える 3

1

テストを別のブランチで行う必要があるのはなぜですか? git のブランチは通常、プロジェクトの並行バージョン (「安定版」と「開発版」など) を切り替えるためのものです。「テストあり版」と「テストなし版」を切り替える目的は何ですか?

最も理にかなっているのは、すべてのブランチでテストを行うことです。その後、コードが完成していないため、マスター ブランチのテストはまだ機能する必要がなく、マスター ブランチよりも前にアルゴリズム ブランチのテストを機能させることができます。最終的にマスター テストが機能するようになったら、アルゴリズム ブランチをマージできます。

于 2013-02-10T18:02:45.830 に答える
1

次の 2 つのオプションが考えられます。

  1. テストが機能するように「testing」ブランチですでにいくつかの構成を行っている場合は、オプション 2 に進みます。

    Merge "testing" to the "algorithm" branch
    

    そうすれば、すべてを再度構成する時間を無駄にすることはありません。

    無関係と呼ぶテストについては、それらが本当に無関係である場合は、マージを実行する前に単純に削除できます。ただし、テスト構成が機能するかどうかを確認するテストは無関係ではありません。これがあなたの場合かどうかはわかりません。

  2. 2 番目のオプションは、「algorithm」から新しいブランチを作成することです。これを「algorithm2」と呼びましょう。

    Merge "testing" into "algorithm2"
    

    すべてが期待どおりに機能した場合は、「アルゴリズム」ブランチを削除できます。これは、アルゴリズム ブランチに新しい変更を導入する安全な方法です。

于 2013-02-10T18:46:21.507 に答える
0

最善の一般的な戦略は、安定バージョンまたは安定バージョンになるメインブランチを作成することです。1.0、2.0 ..etc 次に、各テストまたは機能に対して、機能ブランチと呼ばれるものを作成します。git rm file はマージでそれを完了するため、ファイルの削除は大したことではありません。プル リクエストを通じて常にメイン ブランチ (2.0) とマージする

楽しんで。

于 2013-02-10T18:21:28.867 に答える