Php 同时使用SVN和composer-供应商目录的版本控制
以下是我如何将composer和svn结合使用: 在我的开发版本中,我运行composer将所需的软件包下载到Php 同时使用SVN和composer-供应商目录的版本控制,php,svn,composer-php,Php,Svn,Composer Php,以下是我如何将composer和svn结合使用: 在我的开发版本中,我运行composer将所需的软件包下载到vendor目录。然后,我将vendor目录与开发文件夹的其余部分一起提交给svn。生产生成生成了供应商文件夹的副本 我知道,建议不要提交svn中的供应商目录(请参阅),但我希望在编写器更新可能会破坏我的应用程序的情况下保持安全。它允许我将这种情况下的所有内容回滚到最后一个稳定状态 composer如何工作的问题是,如果composer删除整个目录,签出的svn repo将中断 如果我知
vendor
目录。然后,我将vendor
目录与开发文件夹的其余部分一起提交给svn。生产生成生成了供应商
文件夹的副本
我知道,建议不要提交svn中的供应商
目录(请参阅),但我希望在编写器更新
可能会破坏我的应用程序的情况下保持安全。它允许我将这种情况下的所有内容回滚到最后一个稳定状态
composer如何工作的问题是,如果composer删除整个目录,签出的svn repo将中断
如果我知道如何回滚最终中断的
composer更新
,我会切换到推荐的做法,只将composer.lock
和composer.json
签入svn。有人能给我解释一下吗。当您拥有composer.lock
并运行composer install
(非更新)时,您肯定会得到您“锁定”的依赖项
运行
composer update
会忽略composer.lock
中的条目,并尝试下载composer.json
允许的最新依赖项。这意味着如果composer更新
破坏了某些内容,我可以删除供应商
文件夹,还原composer.lock
并运行composer安装
?我可以始终依靠PackageGist这样做的保证是什么?您不应该在生产环境中运行composer update
,而应该只运行composer install
。您可以在验证无任何损坏后在本地运行更新,只需提交composer.lock
。是的,我只在开发环境中运行composer update
。我现在刚刚尝试过。我刚刚用composer.lock重新创建了我的供应商目录。