处理Symfony2项目和Git分支

时间:2015-09-14 01:59:43

标签: git symfony composer-php phpstorm git-branch

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

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

哪种方法可以解决这个问题?你会怎么做?有什么建议?我疯狂地运行相同的命令几次,然后将PHPStorm上的本地代码(Windows主机)与远程代码(Linux服务器)同步。想法?

1 个答案:

答案 0 :(得分:1)

我想到了一些不同的事情。有些是更好的做法,有些可能会缩短周转时间,具体取决于你想要付出多少努力:

基本:

  • 开启.lock down - 确保每个分支都有一个已提交的锁定文件。这是right in the Composer documentation的原因。太少的项目似乎很欣赏SemVer,甚至那些可以让一个突破性的变化不时潜入。
  • 具体在运行作曲家更新时,请确保您定位不同分支之间不同的特定程序包(例如:composer update doctrine/dbal)。
    • 更好的是,根本不运行update。这可能会错误地更新您没有打算过的分支中的包。最好利用composer install
  • 为什么不同时使用? - 可能只需要专门为该分支创建项目的单独克隆?如果你发现自己经常在这两个地方工作,那么就不用担心翻转分支机构。毕竟,磁盘空间很便宜。
    • 删除本地所有分支,但您感兴趣的分支除外。设置Git Push / Pull to' Simple'避免任何意外提交。

中等或更高

  • 懒惰,去喝杯咖啡 - 考虑一下结账后挂钩。您可以查看here作为示例。享受闲暇时间来喝咖啡,然后映射我们的下一个测试。
  • 自己动手 - 安装本地Satis实例。在我们的团队添加了一个本地Satis实例并镜像了我们的主要依赖项之后,我发现项目安装有了明显的改进。
  • VM - 转换项目以使用VM。基于GUI的工具(例如PuPHPetPhansible)可以让您轻松应对。这不会解决你的作曲家问题,但减少与远程同步的往返可能是值得投入的时间。
  • 配置调整 - 在每个分支的基础上更改作曲家的供应商目录。有关详细信息,请参阅this previous answer
    • 注意:由于意外/特定于分支的权限错误等,这很可能会给您的测试增加一些复杂性。
  • Platform.sh
    1. 使用Platform.sh
    2. 设置帐户
    3. ???
    4. 利润

希望上面的一些组合可以帮助您找到一些改进!