【问题标题】:How do I define an explicit SVN revision for a Composer repository?如何为 Composer 存储库定义显式 SVN 修订版?
【发布时间】:2013-04-04 03:56:11
【问题描述】:

我正在尝试使用 Composer 将 google-api-php-client 库包含到我的项目中。最简单的方法是从 VCS 主干分支获取库,但我认为在我的情况下这不是最好的主意。更好的是指向一些稳定的库状态(标签或修订)。虽然没有可用的标签,但获得特定的 svn 修订版是唯一的选择。但我不知道该怎么做。

我尝试了不同的包配置,但没有成功,如下所示:

{
  "repositories":[
    {
        "type":"package",
        "package":{
            "name":"project/google-api-php-client",
            "version":"0.2.1",
            "source":{
                "type":"svn",
                "url":"http://google-api-php-client.googlecode.com/svn",
                "reference":"trunk/?r=515"
            }
        }
    }
  ]
}

是否可以使用 composer 签出 svn 修订版?提前致谢。

【问题讨论】:

  • 好问题,我一直想知道如何做到这一点,最后分解并阅读代码以弄清楚它是如何工作的。

标签: php svn composer-php


【解决方案1】:

在定义版本时使用包存储库,您可以在参考中指定修订。我的 wordpress composer.json 中的一个例子

{
    "repositories": [
        "type": "package",
        "package": {
            "name": "wordpress-plugin/wp-minify",
            "type": "wordpress-plugin",
            "version": "1.2",
            "source": {
                "type": "svn",
                "url": "http://plugins.svn.wordpress.org/wp-minify",
                "reference": "trunk@691320"
            },
            "require": {
                "composer/installers": "~1.0"
            }
        }
    ]
}

这将从主干安装插件,显式修订为691320

【讨论】:

    【解决方案2】:

    版本可以在require部分设置(你不显示)。

    唯一可用的 SVN 选项是:

    {
        "repositories": [
            {
                "type": "vcs",
                "url": "http://svn.example.org/projectA/",
                "trunk-path": "Trunk",
                "branches-path": "Branches",
                "tags-path": "Tags"
            }
        ]
    }
    

    看起来你想使用一个包,但你也可以只定义这个存储库和require适当的版本(你可以标记吗?这更容易)。

    您也可以尝试将修订版放入 version 参数中,但我认为这不会奏效。

    此外,文档说明了“主干”路径:

    由于 Subversion 没有分支和标签的原生概念,因此 Composer 默认情况下假设代码位于 $url/trunk, $url/branches 和 $url/标签。如果您的存储库有不同的布局,您可以 更改这些值。

    【讨论】:

    • 感谢您的回复。正如您所说,将修订号放在 version 参数中是行不通的。现在,我决定将这个库独立留在我的项目中,而不是在 Composer 下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2011-04-22
    相关资源
    最近更新 更多