具有本地SVN回购的作曲家

Phi*_*ord 5 php svn symfony composer-php

我正在尝试使用本地SVN repo运行composer,我可以点击我想要的repo但是作曲家不断添加/branch到URL的末尾.

我怎么能覆盖这个呢?

以下是文档:

我拥有的例子

"repositories": [
    {
        "type": "vcs",
        "url": "http://host.com/externals/project",
        "trunk-path": "trunk",
        "branches-path": "branches",
        "tags-path": "tags",
        "reference": "symfony/symfony"
    }
],
"require": {
    "project/project": "svn-project"
}
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

[RuntimeException]                                                                                                                                                      
Repository http://host.com/externals/project/version could not be processed, 
svn: URL 'http://host.com/externals/project/version/branches' 
non-existent in that revision 
Run Code Online (Sandbox Code Playgroud)

这是我的颠覆布局:

http://host.com/externals/project/version
Run Code Online (Sandbox Code Playgroud)
  • 外部是像Symfony这样的图书馆
  • 项目是Symfony
  • 版本是2.1.2

所以我的svn回购就像:

http://host.com/externals/symfony/2.1.2
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

这就是我为我们正在使用的商店外部图书馆工作的公司

更新:

我已将我们的回购改为:

http://host.com/externals/symfony/trunk/ <-- empty directory
http://host.com/externals/symfony/branches/ <-- empty directory
http://host.com/externals/symfony/trunk/2.1.2 <-- holds the Symfony 2.1.2 release code
Run Code Online (Sandbox Code Playgroud)

现在我收到这条消息:

Reading composer.json of http://host.com/externals/symfony/ (2.1.2)
Importing tag 2.1.2 (2.1.2.0)
Run Code Online (Sandbox Code Playgroud)

但它仍然从github回购而不是我的svn回购.

我也读过Satis

但如果我在那里,我在哪里举办这个?

  • 哪个项目?
  • 在我的SVN回购?
  • 别处?

bah*_*rep 4

/trunk看起来 Composer 假设您坚持、/branches和的通用存储库布局/tags。另外,您必须输入存储库根目录的 URL,而不是完整的项目路径。您可以使用 指定项目特定的路径package-path

请参阅文档Composer | 颠覆选项

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

  • 这是正确的,您应该输入存储库的根目录,然后 Composer 将扫描所有内容并为包含composer.json 文件的每个分支/标签创建版本。您可以使用“composer show package/name --verbose”来查看检测到哪些版本以及原因(未检测到)。 (3认同)
  • @PhillPafford我不知道*为什么*你试图在你的svn存储库中镜像内容,但假设你有一个很好的理由,你可能想要做的是通过在中添加 `{"packagist": false}` 来禁用 packagist存储库。因为目前我假设您需要 symfony/symfony 没有特定版本,因此它尝试安装来自 packagist 并从 github 克隆的最新版本。 (2认同)