我有一个项目,其中有作曲家添加到它。我最近发现,产品包很久以前就被更新了,而没有将composer.json或composer.lock文件提交到Git。
我从Git的最新版本开始设置了一个全新的开发和测试环境,而我并不知道Git使用了错误版本的一些包。
我已经手动required了所有与生产环境完全匹配的版本,现在composer.lock文件几乎相同,但并不完全相同。
我必须复制确切的编写器版本(介于beta1和beta2之间)才能走到这一步。
以下是我现在想要以diff格式进行的更改,其中(-)是开发/测试,(+)是生产:
{
"name": "doctrine/doctrine-migrations-bundle",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
"reference": "c0a2f5d069e56e2ac7a42719dfda63fd996a39ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/d78e19f96b54aed55aceedcdddd0fdc994b1010b",
+ "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/c0a2f5d069e56e2ac7a42719dfda63fd996a39ed",
"reference": "c0a2f5d069e56e2ac7a42719dfda63fd996a39ed",
"shasum": ""
},
"require": {
"doctrine/doctrine-bundle": "~1.0",
"doctrine/migrations": "^1.1",
"php": ">=5.4.0",
- "symfony/framework-bundle": "~2.7|~3.3|~4.0"
+ "symfony/framework-bundle": "~2.3|~3.0"
},
+ "require-dev": {
+ "phpunit/phpunit": "~4.8"
+ },
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
}
},
...
{
"name": "doctrine/migrations",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
"reference": "0d0ff5da10c5d30846da32060bd9e357abf70a05"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/migrations/zipball/488fb6994839eb1e10b823532888ea0ff9d19846",
+ "url": "https://api.github.com/repos/doctrine/migrations/zipball/0d0ff5da10c5d30846da32060bd9e357abf70a05",
"reference": "0d0ff5da10c5d30846da32060bd9e357abf70a05",
"shasum": ""
},
"require": {
"doctrine/dbal": "~2.2",
"ocramius/proxy-manager": "^1.0|^2.0",
"php": "^5.5|^7.0",
"symfony/console": "~2.3|~3.0",
"symfony/yaml": "~2.3|~3.0"
},
"require-dev": {
"doctrine/coding-standard": "dev-master",
"doctrine/orm": "2.*",
"jdorn/sql-formatter": "~1.1",
"johnkary/phpunit-speedtrap": "~1.0@dev",
"mockery/mockery": "^0.9.4",
"phpunit/phpunit": "~4.7",
"satooshi/php-coveralls": "0.6.*"
},
"suggest": {
"jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command."
},
"bin": [
"bin/doctrine-migrations"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "v1.4.x-dev"
+ "dev-master": "v1.5.x-dev"
}
},
...
{
"name": "knplabs/knp-snappy-bundle",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/KnpSnappyBundle.git",
"reference": "ead0b44c6a9a96c1817710cd854665ee755afe04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/KnpSnappyBundle/zipball/f7c2541008525bb621a0bd492e1d83a6d2b48adf",
+ "url": "https://api.github.com/repos/KnpLabs/KnpSnappyBundle/zipball/ead0b44c6a9a96c1817710cd854665ee755afe04",
"reference": "ead0b44c6a9a96c1817710cd854665ee755afe04",
"shasum": ""
},
"require": {
"knplabs/knp-snappy": "~0.1",
"php": ">=5.3.2",
"symfony/finder": "~2.3|~3.0",
"symfony/framework-bundle": "~2.3|~3.0",
"symfony/validator": "~2.3|~3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.5.x-dev"
}
},我可以使用哪些Composer命令来使这两个文件完全匹配,从而在所有环境中拥有完全相同的包?如果某些行没有区别(比如确切的Git URL),我很乐意手动复制这些行。
发布于 2017-12-13 18:50:14
为了匹配composer.lock中使用的包的确切版本,您可能需要在composer.json中使用确切的提交散列:
{
"require": {
"monolog/monolog": "dev-master#2eb0c0978d290a1c45346a1955188929cb4e5db7"
}
}https://stackoverflow.com/questions/47787071
复制相似问题