2016-05-17 101 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,我把需要的symfony /工藝= 2.8.6

所以我們都有這個版本。這是工作,任何問題。

我還是有一個問題一直困擾着我。 以某種方式,我會將版本> = 2.8.6放入composer.json中,因此對於dev,我們可以使用v3.0.6,並且在生產中使用兼容版本。

但在這種情況下,我們將始終與composer.lock文件(devs和production之間)產生衝突。 所以,我們無法跟蹤它了。 但是,我仍然喜歡獲得最新的穩定版本。有時候,我們會將生產服務器更新到PHP 5.6。 所以,使用symfony/process到最新的穩定版本。

所以在這種情況下,我應該停止跟蹤composer.lock? 因爲我們可以獲得最新版本,並且更容易遷移到PHP5.6嗎?

或者,這是跟蹤composer.lock文件更好的主意。

謝謝

回答

1

使用兩個分支,一個用於開發,另一個用於生產或與自己composer.lock釋放。保持從開發到生產的連續合併,每天或每幾個小時或任何其他適當的時間間隔。從dev分支出來並將.lock修改爲2.8.6。後來從開發合併到生產將不會引起衝突。開發人員不應該從本地開發人員推送到遠程生產分支。

如果您認爲2個分行不便,您可以將2個鎖添加到回購的適當位置。例如,3.x.x是它應該在的位置,2.x.x在另一個文件夾中。在生產環境中,您可以複製2.x.x版本以替換3.x.x.這可以通過預運行腳本或post-checkout鉤子來完成。