将svn的特定目录添加到composer

Add a specific directory of svn to composer

我只想要这个文件夹:https://develop.svn.wordpress.org/trunk/tests/phpunit/includes (or the github mirror) 而不是整个项目。

我可以用svn co --quiet https://develop.svn.wordpress.org/trunk/tests/phpunit/includes wp-tests

得到

但是由于整个项目都是由 composer 管理的,所以执行额外的命令很烦人。

我显然不能编辑这个存储库。

将此文件夹添加到我的项目中的最佳方法是什么,以便使用 composer update/install 对其进行维护。最好不要添加我自己的精简镜像,我们必须维护它。

您可以使用作曲家的 post-update-cmdpost-install-cmd 选项。这是在作曲家 update/install 之后执行的。将此添加到 composer.json:

{
    "scripts": {
        "post-install-cmd": [
            "svn co --quiet https://develop.svn.wordpress.org/trunk/tests/phpunit/includes wp-tests",
        ],
    }
}

您可以定义指向此目录的虚拟包并将其添加到 require-dev 部分:

"require-dev": {
    "wordpress/phpunit": "*"
},
"repositories": [
    {
        "type": "package",
        "package": {
            "name": "wordpress/phpunit",
            "version": "1.0.0",
            "source": {
                "url": "https://develop.svn.wordpress.org",
                "type": "svn",
                "reference": "trunk/tests/phpunit/includes/@43534"
            }
        }
    }
]

程序包将在 vendor/wordpress/phpunit 中安装。您可以使用 composer/installers 插件更改此目录。