私のプロジェクトは、元のSymfonySEリポジトリから複製したSymfonyStandardEditionに基づいています。もちろん、symfonyは、依存関係に注意して独自のファイルを配布しcomposer.json
ます。composer.lock
私は自分のプロジェクトの開発にブランチを使用していますmaster
。プロジェクトを開始してから、自分のプロジェクトの依存関係をに追加しcomposer.json
、でロックしましたcomposer.lock
。
しかし今度は、SymfonySE2.1.3を使用するようにプロジェクトを更新します。
Symfony StandardEditionリポジトリをgitリモートとして追加しました:
git remote add symfonyse git://github.com/symfony/symfony-standard.git
そして、symfonyse
リポジトリ2.1ブランチからの最新の変更をマージして、最新の2.1開発を取得できます。
git pull symfonyse 2.1
もちろん、そこにプルした後composer.json
、私は自分の依存関係で変更し、composer.lock
以前は古い依存関係にロックされていたため、マージの競合が発生します。
しかし、composer.lock
現在競合しているのは、最新のSymfony2 SEのロックされた依存関係を自分のプロジェクトのロックされた依存関係(私のdepsとSymfony 2.1.0のdepsを含む)にマージしようとしています。これを手動でマージするのは非常に面倒です。
これらの競合を解決するための最良の方法は何composer.lock
ですか?
マージを開始する前にコンテンツに戻るcomposer.lock
ことで、マージの競合を無視する必要がありますか?その後、 Symfony2 SEが必要とする依存関係ごとに実行できると思います。これは、マージしたばかりの新しい変更で更新されています。git checkout -- composer.lock
composer.lock
composer update
composer.json
または、とマージされるすべての変更を受け入れcomposer.lock
、それらをコミットしてから、実行してすべてのプロジェクト依存関係を更新する必要がありcomposer update
ますか?これは本質的に、Symfony2.1.3と私自身の依存関係のロックを含むまったく新しいロックファイルを生成します。最新の変更も取得している場合、ロックファイルのアップストリーム更新が必要かどうかはわかりませんcomposer.json
。