2

いくつかのサブプロジェクトを含み、サブツリーまたはサブモジュールを含まない単一のリポジトリがあります。プロジェクト C で修正が必要な新機能にバグがあります。C はプロジェクト A と B に依存しています。

この機能を動作させるには、Project A の最新バージョンが必要です。

プロジェクト B のどこかで、バグが導入されました。だから私の質問は:

git bisect を実行して、A と C を最新バージョンに保ちながら、プロジェクト B のソース ツリーでのみ動作するように指示できますか?

4

2 に答える 2

4

いいえ、git bisect はそれをサポートしていません。異なるプロジェクトを同じリポジトリに入れるべきではありません。Git はそれを好まず、サポートしていません。それにもかかわらず、できることは次のとおりです。

git bisectここには基本的に 2 つのモードがあります。通常モードと --no-checkoutモードです。両方のいずれかを使用して、さまざまな方法で目標を達成できます。

  1. 通常:実行git bisectし、すべてのステップで、テストする前に、正しいバージョンのサブプロジェクトを作業ツリーに配置しgit checkout master -- sub/project/folderます。分割を続行する前に、テスト後に元に戻す必要がある場合があります。
  2. --no-checkout: 実行しgit bisect start --no-checkoutます。BISECT_HEADこれで、参照の設定を除いて、手順はレポに影響を与えません。この参照を使用して、projectB のみをチェックアウトします: git checkout BISECT_HEAD path/to/projectB。今、あなたのテストを行います。

方法をお勧めし--no-checkoutます。3lectrologos のヒントは機能しませんでしたが、それでも役に立ちます。ProjectB のパスを に与えると、ProjectB へのgit bisect変更を含むリビジョンでのみエラーが導入される可能性があるという事実を利用できます。

于 2013-04-23T23:48:36.827 に答える