5

1 つのサブモジュールを持つ git スーパープロジェクトがあります。サブモジュールは gerrit レビュー中です。

私たちの問題は、変更がサブモジュールでレビューされている間 (レビュー中のコミットへのサブモジュール リンクがスーパープロジェクトでコミットされていたとしても)、特に refs/サブモジュールの changes/* 。

サブモジュールでまだレビュー中のコードをチェックアウトできるようにするには、他の開発者が必要であると明確に述べています。したがって、コードがマージされるのを待つのは現実的な選択ではありません。

サブモジュールのリンクがレビュー中のコミットを指しているスーパープロジェクトの「git submodule update」を介して、開発者がサブモジュールでレビュー中の変更を取得できるようにする方法はありますか?

4

2 に答える 2

0

これは、デフォルトで変更参照を明示的にフェッチすることで解決できると思います。

fetch = +refs/changes/*:refs/remotes/origin/changes/*

または類似。かどうかはわかりませんが

git pull --recurse-submodules=yes

正しく拾ってくれます。

于 2015-04-22T09:00:42.523 に答える
0

サブモジュールで特にフェッチしない限り、他の開発者は「git submodule update」を介してそれらを取得することはできませんrefs/changes/*

それでも、それはそれらのコミットをレビュー下に置くための通常の方法のようです.
たとえば、EGit のマニュアル セクション「Fetching a change from a Gerrit Code Review Server」では、まさにそれが行われています。

EGit Gerrit フェッチ

このwiki ページでは、プロセスについて詳しく説明しています。

gerrit からパッチをマージします (gerrit のダウンロード セクションを参照)。

git fetch ssh://username@gerrit.tuleap.net:29418/tuleap refs/changes/52/52/8
git merge --no-ff --no-commit --log FETCH_HEAD

開発者はサブモジュール (特定のコミットを参照することになっている) を更新したいので、次のことができます。

  • devそのサブモジュール内からブランチを作成し、 Gerrit の変更をマージできます
  • 同じサブモジュールを時々更新し、新しいサブモジュールのHEADをブランチと比較して、ブランチを新しい更新されたHEADにdevリセットする可能性があります。dev
于 2013-09-05T06:50:31.857 に答える