1

私の会社には疑似独立したチームがいくつかあり、それぞれが複数のリポジトリを所有しています (ただし、別のチームのコードを編集することもあります)。ほとんどのモジュールは相互に依存していますが、「インフラストラクチャ」レベルに最も近いモジュールは基本的に他のモジュールから独立しています。

現在、すべてのモジュールのクローン作成や更新などを処理するスクリプトが多数あり、モジュールのテキスト リストのメンテナンス (この場合はほとんど自動化されています) も必要です。明らかに、これは私が信じている/果たすことgit submoduleができると期待している役割です。

私が望むのは、少なくとも次の能力です。

に似た 1 つのコマンドでソース ツリー全体のクローンを作成しgit clone main_repositoryます。

に似たコマンドでソース ツリー全体を更新しgit pullます。これは単に のように見えますがgit submodule foreach git pull、おそらく のエイリアスを作成しgit submodule foreach gitます。現在のセットアップでは、このステップを並行して (一度に 4 つ) 実行します。サブモジュールのセットアップでも同じことを行いたいと思います。また、サブモジュールを更新すると、(コミットのために) 変更されたものとして表示されるように見えます。この背後にあるロジックは理解できますが、通常は自分のモジュールの変更のみを気にするため、現在のシステムには .gitignore に疑似サブモジュールがあります。

git grepツリー全体で機能するアナログが欲しいです。一見git submodule foreach git grep helloうまくいくように見えましたが、検索文字列が見つからない場合(いくつかの小さなサブモジュールがあるため、通常はこれが当てはまります)、grep が戻り1、コマンド全体が停止します。

diff と status にも同様に便利な類似物が欲しいです。

これの一部についていくつかの回避策を考えることができますが、私が望むことのほとんどを実行する一連のハッキー スクリプトが既にあります。

4

1 に答える 1

1

これの一部についていくつかの回避策を考えることができますが、私が望むことのほとんどを実行する一連のハッキー スクリプトが既にあります。

サブモジュールではありません。説明したユースケースではありません。サブモジュールは、さまざまなSO 回答Webで文書化されているように、相互依存性が高く、頻繁に更新されるコードではうまく機能しません。その2番目のリンク(「あなたの会社がgitサブモジュールを使用すべきではない理由」というタイトルの適切なタイトル)には、あなたのために役立つ可能性のあるいくつかの代替手段がリストされています.グーグル。

于 2012-08-31T12:35:35.057 に答える