如何为Composer存储库定义显式SVN修订版?

时间:2012-12-20 09:06:56

标签: php svn composer-php

我正在尝试使用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"
            }
        }
    }
  ]
}

是否有可能用作曲家签出svn修订版?提前谢谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

可以在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 / tags。如果您的存储库具有不同的布局,则可以   改变这些价值观。