0

Composer(デフォルトでSymfony2で使用されている)からGitサブモジュールに切り替える必要があります。目的のサブモジュールを目的の場所に追加するだけで、Composerによってインストールされた現在のバージョンを上書きできると思いました。

しかし、私が使用すると、次のようgit submodule addになります。

'vendor/twig/twig' already exists in the index

だから私は試しました:

git rm vendor/twig/twig

サブモジュールを再度追加しようとしましたが、同じエラーです。

私は何が間違っているのですか?

4

3 に答える 3

3

私はcloudControlの創設者兼最高経営責任者です。現在、composerは、サブモジュールを何らかの方法で検出する必要があるロジックに干渉するため、イメージ構築プロセスを中断します。チームはこの問題を認識しており、根本的な問題の修正に取り組んでいます。

于 2012-08-27T19:21:37.680 に答える
2

私はcloudControlで働いていますが、最近この問題について問い合わせています。元の問題に関しては、composerパッケージをgitサブモジュールに置き換えるための正しい解決策をすでに提案しましたが、これは単なるgitコマンドの問題でした。ただし、これらのgitサブモジュールがComposerパッケージと同一であり、phpコードがComposerによって提供されるautoload.phpにぶら下がっている限り、これを行うことはあまり意味がありません。

まだComposerを内部で処理していません。それらのファイルはリポジトリに追加されるだけで、残りはphpコード要件になります。ただし、gitサブモジュールを処理するため、ComposerからGitサブモジュールに実際に切り替えたい場合は、Composerファイル(vendorフォルダーとcomposer.*ファイル)を削除し、必要な場所にgitサブモジュールを追加して、phpの依存関係を再度処理するのが最善の方法です。したがって、すべてが正常に機能するはずであり、完全にgitサブモジュールに切り替えているはずです。

Composerのネイティブサポートは、将来の計画に含まれています。

于 2012-08-29T11:04:13.850 に答える
1

問題は、最初にリポジトリを実際に削除してgit-removeする必要があることでした。

つまり、小枝の場合、私が最後にしたことは次のとおりです。

git rm -r vendor/twig/*
rm -r vendor/twig/*
git add vendor/.
git submodule add git://github.com/fabpot/Twig.git vendor/twig/twig
git submodule add https://github.com/fabpot/Twig-extensions.git vendor/twig/extensions

これで、gitサブモジュールとしてtwigおよびtwig拡張機能があり、クラウドアプリケーションで使用できます。

于 2012-08-28T14:31:22.373 に答える