本地"路径"存储库没有看到vcs版本信息

时间:2016-06-12 11:52:27

标签: php git composer-php config

我目前正在尝试设置更好的本地开发,而不将有关我的本地结构的信息放入项目本身或本项目的composer.json

我发现有一种新方法可以使用config.json并向其添加"repositories"部分来实现这一点,这指向我依赖的本地项目。

我的设置

所以我设置了两个带有几个版本的项目(在带有PHP 10的IIS 10的Win10上),让我们称之为php-project1php-project2php-project1取决于php-project2,我希望同时开发这两个版本。因此,我在php-project2中所做的更改应该直接影响第一个项目。此外,它们是git存储库,它们包含作为composer版本的标记。他们也是打包者,但我当然希望使用本地版本进行开发。

他们的composer.json看起来像这样(2个文件):

{
    "name": "test/php-project1",
    "description": "Some text here",
    "type": "library",
    "require": {
        "test/php-project2": "^0.3",
    }
}

{
    "name": "test/php-project2",
    "description": "Some other text here",
    "type": "library"
}

请注意,没有"version"条目,因为我想从git标签中使用它。

现在我尝试设置这样的全局config.json

{
    "repositories": [
        {
            "type": "path",
            "url": "/somePath/php-*"
        }
    ]
}

我在这里使用php-*是因为我想稍后将其用于所有具有此模式的存储库/项目。

那么现在的问题是什么?

在第一个项目上运行composer update时,它不会使用php-project2的本地版本,而是从packagist下载它。这仅在我向"version"添加composer.json条目时才有效,但我不想这样!
我也尝试了"type": "vcs",但这创建了一个克隆,我需要一个符号链接,也可以直接在其他项目中进行更改。

documentation说:

  

如果包是本地VCS存储库,则可以通过当前签出的分支或标记推断该版本。否则,应该在包的composer.json文件中明确定义版本。

目前php-project2位于代码0.3.0上,没有任何更改 那我该怎么办?

1 个答案:

答案 0 :(得分:0)

alcohol的帮助下找到了我的错误(这听起来不错^ ^)。

当你使用它并需要一个符号链接时,一定要在"version"或(在我的情况下)检查标签(不是分支!)中添加composer.json条目,这样作曲家可能会看到,您使用的版本符合要求。