2016-12-09 16 views
6

私たちのソフトウェアはモジュール式で、私は約20 gitのリポジトリを1つのプロジェクトに持っています。git-bisectですが、N reposの場合

テストが失敗した場合は、いくつかの開発者がこれらの20人のレポ上で動作するので、マッチングのコミットを見つけるために時々難しいです。

私はテストが昨日働いていたし、今日reproachable失敗を知っています。

時々私はgitの-bisec使用していますが、これは一つだけのgitのレポのために動作します。

多くの場合、2つのgit reposの変更によってテストが失敗します。

私はNのGitのリポジトリ上で自分自身をループ汚いスクリプトを書くことができますが、その前に、私は専門家がこの問題を解決する方法を知っていただきたいと思います。

私は、Python、Djangoのとpytestを使用していますが、私の知る限り、これは、この質問のために重要ではありません。

+0

可能な複製http://stackoverflow.com/questions/9711592/repo-bisect-for-debugging-android – Phillip

+4

@ Phillipのリンクはこれに金色に見えますが、これはサブモジュールを使う理由です。これはサブモジュールのほとんどの点です:複数の拠点からプロジェクトを構築するためにコミットするレコードです。サブモジュールを使用した場合、bisectは完全に動作します。 " – jthill

+0

手動で検索を絞り込む:複雑なアプリケーションが正常に終了した時点で壊れてしまいました。そして、それを考えて行く?今、私たちは、私は問題があまりにも。多分少し難しいが、不可能ではない、彼らなしで解決することができると思います。gitのサブモジュールをいない使用するように。 –

答えて

3

私は個人的に複雑なプロジェクトを管理するためにrepo toolを使用することを好みます。これらの20個のreposをmanifest.xmlに入れ、ビルドが開始されるたびに、ビルドが失敗した場合にはマニフェストを作成して、変更されたマニフェストを変更して何が変更されたかを確認します。

+0

レポツールがクールに見えます。それは非アンドロイドプロジェクトでも機能しますか?私たちは、djangoアプリケーションを開発しています。 – guettli

+0

はい、リポジトリは.gitに基づいています –

2

「逆依存」CIビルドのためのQAツールのカテゴリがあります。したがって、レベルの低い変更が行われるたびに、より高いレベルのプロジェクトが再構築されます。規模では、リソースを集中的に使用できます。あなたはレポ・ツー・レポの関係を扱って停止し、サブコンポーネントのバージョン・リリースの方法論、次の始まる場合

問題の全体のクラスが削除されます。次に、下位レベルの依存関係のバージョンを追跡して、アップグレードするときにそれが壊れたことを知ることができます。依存関係を体系化したい場合、CIは複数のバージョンの依存関係に対して構築することができます。

Gitのサブモジュールを使用すると、再び低いレベルからの変更を組み込むために時期を決定するために取得して、個々のコミットのために追跡することを実現します。 (特にタグ付きリリースコミットに更新する場合は、リリース版のように使用することもできます)。

+0

"逆依存関係" CIビルド用のQAツールのこのカテゴリのどのツールを使用しますか? – guettli

+0

私の現在のショップでは、以前のCIサーバーでJenkinsのスクリプトを使用していました。 –

+0

すでにJenkinsを使用しています。それは私たち(すべてマスター(アジャイル)からの)から私たちのレポを引っ張り、特定のプロジェクトをテストしようとします。プロジェクトは非常に小さく、ほとんどの構成は、わずかなコーディングラインです。あなたは今どのツールを使用していますか? – guettli

関連する問題