2016-05-17 15 views
0

私は自分のプロジェクトで常に作曲家のように使用しています。composer.lockファイルのGit追跡

いつものように、私はgitでcomposer.lockファイルを追跡します。 まず、前の鉛開発者が私にそう言ったからです。 第二に、すべての同じ依存関係を取得するのが実際に練習であるからです。そしてそれらを実稼働環境に簡単にインストールします。

とにかく、実際にはライブラリを使用しています。 symfony /プロセスが必要です。 問題は、プロダクションサーバー上で、PHPバージョン(5.4.44)が原因でsymfony/processのv2.8.6しか持てないことです。

しかし、ほとんどのデベロッパーには、PHP5.6またはPHP7があります。 symfony/process v3.0.6(laste stable release)を使うことができました。

だからcomposer.jsonに、私は、だから我々はすべてこのバージョンを持っている2.8.6

=のsymfony /プロセスを必要と置きます。これは問題なく動作しています。

私はまだすべての時間私を悩ます質問があります。 何らかの形で、私はversion> = 2.8.6をcomposer.jsonに入れたいと思います。devにはv3.0.6を、そしてプロダクションには互換バージョンを用意しました。

しかし、この場合、私たちは常にcomposer.lockファイル(開発者と制作者の間)と競合します。 これ以上追跡できませんでした。 しかし、まだ、私は最も安定したリリースを得るのが好きです。そして、ある日、プロダクションサーバをPHP 5.6にアップデートします。 したがって、symfony/processを最新の安定版に使用してください。

このような場合は、composer.lockのトラッキングを停止する必要がありますか? 私たちは最新バージョンを手に入れ、PHP5.6への移行を容易にすることができましたか?

また、これはまだcomposer.lockファイルを追跡するための良い考えです。

答えて

1

使用、二つのブランチ、devに関する1、自分のcomposer.lockで生産またはリリースの他、ありがとうございました。開発者から生産まで、毎日、または数時間ごと、または他の適切な間隔で継続的にマージしてください。 devからプロダクションを分岐し、.lockを2.8.6に変更します。後でdevからproductionにマージしても競合は発生しません。開発者は、ローカル開発者からリモートプロダクションブランチに移行すべきではありません。

2つのブランチが不便であると思われる場合は、2つの.lockを両方ともrepoの適切な場所に追加することができます。たとえば、3.x.xはそれがどこにあるべきか、そして2.x.xは別のフォルダーにあります。運用環境では、2.x.xのバージョンをコピーして3.x.xを置き換えることができます。これはプリ実行スクリプトやpost-checkoutフックのようなもので行うことができます。

関連する問題