首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Composer命令克隆Composer配置

使用Composer命令克隆Composer配置
EN

Stack Overflow用户
提问于 2017-12-13 14:45:24
回答 1查看 19关注 0票数 0

我有一个项目,其中有作曲家添加到它。我最近发现,产品包很久以前就被更新了,而没有将composer.jsoncomposer.lock文件提交到Git。

我从Git的最新版本开始设置了一个全新的开发和测试环境,而我并不知道Git使用了错误版本的一些包。

我已经手动required了所有与生产环境完全匹配的版本,现在composer.lock文件几乎相同,但并不完全相同。

我必须复制确切的编写器版本(介于beta1和beta2之间)才能走到这一步。

以下是我现在想要以diff格式进行的更改,其中(-)是开发/测试,(+)是生产:

代码语言:javascript
复制
    {
        "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),我很乐意手动复制这些行。

EN

回答 1

Stack Overflow用户

发布于 2017-12-13 18:50:14

为了匹配composer.lock中使用的包的确切版本,您可能需要在composer.json中使用确切的提交散列:

代码语言:javascript
复制
{
    "require": {
        "monolog/monolog": "dev-master#2eb0c0978d290a1c45346a1955188929cb4e5db7"
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47787071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档