无法在Windows上的作曲家中使用远程存储库

sec*_*tus 14 php windows git composer-php

我有一个带库的存储库.它可以成功克隆.

$ git clone file:////remote/repo/library
$ cd library
$ composer validate
./composer.json is valid, but with a few warnings
Run Code Online (Sandbox Code Playgroud)

但似乎这个转座不能通过作曲家包含来使用.

...
"repositories": [
    {
        "type": "git",
        "url": "file:////remote/repo/library"
    }]
 ...
Run Code Online (Sandbox Code Playgroud)

试图安装

$ composer install -vvv
... 
Loading composer repositories with package information
Executing command (//remote/repo/library): git show-ref --tags
Executing command (//remote/repo/library): git branch --no-color --no-abbrev -v
Executing command (//remote/repo/library): git branch --no-color
Executing command (//remote/repo/library): git show "master":composer.json

  [Composer\Repository\InvalidRepositoryException]
  No valid composer.json was found in any branch or tag of 
  file:////remote/repo/library, could not load a package from it.
...
Run Code Online (Sandbox Code Playgroud)

如何在带有作曲家的窗口上使用远程存储库?

Lei*_*ith 9

Composer将能够计算出您正在使用的VCS类型,因此请"type": "git"尝试"type": "vcs"(请参阅Composer文档此SO答案).

如果您只想指向本地存储库而不是克隆它或使用特定于git的操作(如版本标记等)git,则可以通过路径引用使用它而不是使用克隆.

同样在Windows上,您可能需要对存储库/库路径使用Windows样式格式(请参阅Composer - 使用本地存储库 SO注释),如果它是Windows共享驱动器,您可能需要检查权限.

编辑

我有一个更深入的看看这个,并且能够重现这两个git clonecomposer install甚至通过看我自己的电脑的网络名称的行为很容易地.

试图使用Windows风格的语法(即file://\\\\remote\\repo\\library)对我来说不起作用,因为它在某个地方的git进程中摔倒了.

它看起来像有大约命名的网络驱动器内部的作曲家本身交互的一些问题:既然你可以加载使用本地磁盘存储库file://中描述的语法,它是能够正确地克隆和使用正常,从一个网络驱动器读取文件//drive/repo的语法和命令行git我我不确定如果不深入研究作曲家源(这是某人获得本地Windows驱动程序支持所需要的),这是否必须是可解决的.

这意味着将网络驱动器位置设置为映射到本地计算机上的字母(根据smcjones的答案)也可以正常工作,因为它将被视为与本地Windows驱动器相同.如果你想自动映射/取消映射驱动器,你也可以添加钩子作为@smcjones指出(尽管你必须记住不要将该驱动器号分配给其他任何东西).

假设您可以访问相关的计算机,git daemon在本地网络计算机上设置一个您想要提供的计算机(使用此答案非常简单),因此您可以使用git://协议版本工作得很好,但根据您的设置,您也可以可能需要确保您的"minimum-stability"标志设置为"dev",如果您没有通过HTTPS传输,您可能需要查找本地编写器配置文件(可能在C:\Users\Username\AppData\Roaming\Composer\config.json)并添加"secure-http": false到它以通过网络提供服务而无需设置SSL证书(除非你想设置它).


Von*_*onC 6

您可以尝试添加与此类似的软件包存储库

基本上,您定义了包含在composer存储库中的相同信息packages.json,但仅限于单个包.
再次,所需的最小字段name,version和任一distsource.

(另见本例)

然后检查问题是否仍然存在.

以防万一,先检查是否: