【问题标题】:Bitbucket doesn't save the vendor filesBitbucket 不保存供应商文件
【发布时间】:2013-09-08 11:16:12
【问题描述】:

我在我的本地主机中克隆了一个在 VPS 中正常工作的存储库。

$ sudo git clone https://msalsas@bitbucket.org/msalsas/itransformer-2.0.git

但是当我尝试清除缓存时:

$ sudo php app/console cache:clear

我收到此错误:

PHP Warning:  require(/home/manolo/MiServer/itransformer-2.0/vendor/kriswallsmith/assetic/src/functions.php): failed to open stream: No such file or directory in /home/manolo/MiServer/itransformer-2.0/vendor/composer/autoload_real.php on line 42
PHP Fatal error:  require(): Failed opening required '/home/manolo/MiServer/itransformer-2.0/vendor/kriswallsmith/assetic/src/functions.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/manolo/MiServer/itransformer-2.0/vendor/composer/autoload_real.php on line 42

我在 bitbucket.org 上有存储库。 这是我在 kriswallsmith 的供应商目录表单 bitbucket 存储库中看到的内容:

为什么看不到里面的文件和文件夹?它也发生在所有供应商目录中。我的本地主机中的供应商目录是空的。

我已经尝试过:

$ sudo php composer.phar self-update
$ sudo php composer.phar update kriswallsmith/assetic

我得到下一个错误:

Loading composer repositories with package information
Updating dependencies (including require-dev)                             
 - Removing twig/twig (v1.13.1)
 - Installing twig/twig (v1.13.2)
Loading from cache

 - Updating kriswallsmith/assetic 1.1.x-dev (0e18168 => 1d671c5)



[RuntimeException]                                                           
The .git directory is missing from /home/manolo/MiServer/itransformer-2.0/v  
endor/kriswallsmith/assetic, see http://getcomposer.org/commit-deps for mor  
e information                                                              



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]

很明显,因为 vendor/kriswallsmith/assetic 中没有文件夹或文件。

如果我输入:

$ sudo php composer.phar install

我明白了:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
- Removing twig/twig (v1.13.2)
- Installing twig/twig (v1.13.1)
Downloading: 100%         

Generating autoload files
PHP Warning:  require(/home/manolo/MiServer/itransformer-2.0/vendor/kriswallsmith/assetic/src/functions.php): failed to open stream: No such file or directory in /home/manolo/MiServer/itransformer-2.0/vendor/composer/autoload_real.php on line 43
PHP Fatal error:  require(): Failed opening required '/home/manolo/MiServer/itransformer-2.0/vendor/kriswallsmith/assetic/src/functions.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/manolo/MiServer/itransformer-2.0/vendor/composer/autoload_real.php on line 43
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-install-cmd event terminated with an exception



[RuntimeException]                                     
An error occurred when generating the bootstrap file.  



install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader]

【问题讨论】:

  • 第一个 composer.phar 安装
  • 使用“composer.phar install”输出编辑。
  • 之前从供应商处删除所有内容。供应商永远不应该被委托给 git。
  • 如果您必须更改捆绑代码,请分叉并从您的分叉中加载代码! getcomposer.org/doc/…
  • @Pazi - 请做出您的回答,以便我将其标记为已回答

标签: php git symfony bitbucket composer-php


【解决方案1】:

错误是提交的供应商目录。特别是如果通过 git 检索供应商,则会执行供应商的整个 git 克隆。然后,如果您提交更改,除了已从另一个 git 存储库添加的文件之外,所有更改都会被添加。

简单:永远不要将供应商提交给 VCS。你有 composer 并且有一个承诺 composer.lock 每个人都会得到完全相同的版本。

如果您必须更改捆绑代码,请将其分叉并 load the code from your fork!。稍后,如果更改通常会影响捆绑包,请创建对原始包的拉取请求;)

【讨论】:

  • 如果您必须更改捆绑代码,请将其分叉并从您的分叉中加载代码!。您可以将其添加到您的答案中吗?这就是帮助我解决问题的原因。
【解决方案2】:

重复cmets的回答:

问题是,他将供应商目录提交到他的 git。

解决方案:永远不要将您的供应商目录放入您的 VCS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多