web-dev-qa-db-ja.com

回避方法composer変更メッセージを破棄

SymfonyのVerdorをcomposer経由で更新しています。私はいつもそれを使っています:

php composer.phar update

ただし、最新バージョンのcomposerでは、更新前に各パッケージに次のようなメッセージが表示されます。

  - Updating doctrine/data-fixtures dev-master (a95d783 => a28b6bd)
The package has modified files:
M .gitignore
M .gitmodules
M LICENSE
M README.md
M UPGRADE
M composer.json
M lib/Doctrine/Common/DataFixtures/AbstractFixture.php
M lib/Doctrine/Common/DataFixtures/DependentFixtureInterface.php
M lib/Doctrine/Common/DataFixtures/Event/Listener/MongoDBReferenceListener.php
M lib/Doctrine/Common/DataFixtures/Event/Listener/ORMReferenceListener.php

変更されたファイルが-10個あります。[v]を選択すると、完全なリストが表示されます。変更を破棄します[y、n、v、s ,?]?

これを回避するには?

28
smoreno

変更を破棄するようにcomposer configを設定します(参照: https://github.com/composer/composer/pull/1188 )):

php composer.phar config --global discard-changes true
37
lemats

@lematsと@ reza-sanaieの両方の回答は不完全です-質問なしで実際の更新を行うには--no-interaction(-n)コンポーザーのオプションが必要です( https://github.com/composer/composerを参照)/pull/1188#issuecomment-160115 )。

だから後

php composer.phar config --global discard-changes true

またはcomposer.jsonを変更した後

"config": {
    "discard-changes": true
},  

使用する

php composer.phar update -n
29
mazenovi

@lematsソリューションの代わりに、composer.jsonファイルを次のように変更できます。

  "config": {
      "discard-changes": true
  },  

このオプションを有効にしても、--no-interactionモードで実行する必要はありません。

php composer.json install --no-interaction

私は@Seldaekに同意しますが、これらのベンダーファイルを変更しないでください。

19
Reza S