处理Symfony2项目和Git分支



我在Symfony2中有一个项目,它在Git中维护几个分支:develop, testing和其他一些。文件composer.json在每个分支上都是不同的,所以我需要一直运行composer update来更新依赖项和/或删除可能导致不必要行为的旧或新库。

现在我正在学习并尝试使用BDD: Behat + Mink编写一些测试,我不想在develop分支上进行更改,所以我创建了testing并在该分支上进行了所有这些更改,但正如我所说的主要问题是在切换分支时运行composer update

处理这个问题的正确方法是什么?你会怎么做?任何建议吗?我正在疯狂地运行相同的命令几次,然后在PHPStorm上同步我的本地代码(Windows主机)对远程代码(Linux服务器)。想法吗?

我想到了一些不同的事情。有些是最佳实践,有些可能会减少周转时间,这取决于您想要付出多少努力:

基本:

  • On .lock down -确保每个分支都有一个提交的锁文件。它出现在Composer文档中是有原因的。似乎很少有项目欣赏SemVer,甚至那些项目也会时不时地让一个突破性的变化潜入。
  • 要具体当运行一个编写器更新时,确保你的目标是特定的包,这些包在分支之间不同(例如:composer update doctrine/dbal)。
    • 最好不要运行update。这可能是错误地更新了您不打算更新的分支中的包。最好使用composer install
  • 为什么不同时使用? -也许有一个单独的克隆项目专门用于该分支也是值得的?如果您经常使用这两种方法,那么就可以省去切换分支的麻烦。毕竟,磁盘空间很便宜。
    • 删除本地的所有分支,除了你感兴趣的。将Git Push/Pull设置为"Simple",以避免任何意外提交。

中等或较高

  • 偷懒,去喝点咖啡 -考虑一个结帐后的钩子。你可以在这里看到一个例子。享受空闲时间,喝杯咖啡,规划下一个测试。
  • Roll Your Own -安装本地Satis实例。我注意到,在我们的团队添加了一个本地Satis实例并镜像了我们的主要依赖项之后,我们的项目安装有了明显的改进。
  • VM -将项目转换为使用VM。基于gui的工具,如PuPHPet或Phansible,可以让您轻松上手。这并不能解决你的作曲问题,但是减少与远程同步的往返可能是值得投入时间的。
  • Config tweak -在每个分支的基础上更改编写器的供应商目录。有关详细信息,请参阅前面的回答。
      注意:由于意外的/分支特定的权限错误等,这很可能会给您的测试增加一些复杂性。
  • Platform.sh :
    1. 使用Platform.sh
    2. 设置账号
    3. ? ?
    4. 利润
  • 希望以上的一些组合能帮助你找到一些改进!

    相关内容

    • 没有找到相关文章

    最新更新