10

Git に移行したばかりなので、愚かな質問をした場合はご容赦ください :-)

私たちの Git リポジトリには、次のようないくつかの Maven プロジェクトが含まれています

ssh://git@git.whatever.com:7999/foo/foo.git
   bar1
   bar2

bar1 と bar2 をビルドする Jenkins ジョブが別々にあります。bar1 へのプッシュが bar2 もトリガーするのを防ぐために、bar2 の Git プラグインを構成して、bar1 ジョブAdvanced... Included Regionsのみを含めるようにbar2/.*しました。逆もまた同様です。bar1/.*

これはうまく機能しますが、私を悩ませていることが 1 つあります。両方のジョブ内の変更は、特定のプロジェクトの変更だけでなく、レポ (bar1 と bar2) のすべての変更を示しています。

どうすればそれを構成できますか?

スクリーンショット: ここに画像の説明を入力

4

2 に答える 2

-2

変更を参照するときはコミット ログを意味していると思います。その場合、カスタム git クライアントまたは少なくともカスタム git コミット ビューアー スクリプトがないと、必要なことを実行できません。

理論上、1 つのリポジトリには 1 つのプロジェクトのみが含まれる必要があります。それ以外の場合は、「間違った」git を使用しています (git は単なるツールであるため、「間違った」という言葉を非常に大まかな意味で使用しています。間違って使用することは不可能です。自分の要件に合わせて正しく使用していないだけです)。

必要なことを行う唯一の方法は、bar1 フォルダーと bar2 フォルダーを別々の git リポジトリに分割することです。それらがモジュールに少し似ていて、どちらも同じサイトで必要な場合は、各プロジェクトの bar1 フォルダーと bar2 フォルダーにそれぞれ git init/clone して、それらを個別に制御できるようにすることができます。

もう 1 つの方法は、それらを個別の git リポジトリに分割してから、他の 2 つのリポジトリをそれぞれのフォルダー内のサブモジュールとして含む 3 番目の「マスター」リポジトリを作成することです。次に、おそらくすでに行っているように、カスタム git フックを使用して、マスターが正しいフォルダー/プロジェクト/バー(x) をプルしてビルドするようにします。ただし、これは、最初にいくつかのフォルダーを設定する必要がないという純粋な理由から、少しハックな方法です。

基本的に、独自のカスタム コミット ビューアーを作成しない限り、フォルダーに基づいてコミット ログを分割することはできません。プロジェクトを複数のリポジトリに分割する必要があります。それらを元に戻し、ビルド タスクを自動化する方法は、あなた次第です。私が上で言及したものよりも多くの方法があることは間違いありません。あなたのニーズに最適なソリューションを見つけるためのほんの一例です。

于 2013-09-04T13:20:57.010 に答える