Bitbucket不保存供应商文件

时间:2013-09-08 11:16:12

标签: php git symfony bitbucket composer-php

我已经在我的localhost中克隆了一个在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存储库:

assetic → 0e18168c45df [0e18168c45df]

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

我试过:

$ 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]

2 个答案:

答案 0 :(得分:3)

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

简单:永远不要将供应商提交给VCS。你有作曲家和一个忠实的作曲家。每个人都会得到完全相同的版本。

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

答案 1 :(得分:0)

重复评论的答案:

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

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