PHP扩展忽略SVN冲突

时间:2011-10-11 17:46:10

标签: php svn conflict

我确信我不是唯一一个在回家之前尝试switch来自SVN的实时服务器的最新代码更改的人,却发现某些块头直接修改了文件服务器,现在你有五个标记为冲突的PHP脚本,网站向下,你的妻子因为迟到晚餐而大喊因为您必须手动解决所有冲突,因为回滚是不可能的。

我认为如果有一个PHP的扩展,当遇到冲突的文件而不会因unexpected T_SL的解析错误而死,而是仅使用每个的工作副本版本来解析它,那将是非常棒的冲突。

<<<<<<< .mine
changes_my_stupid_coworker_made(); // This would be executed
=======
my_important_changes(); // This would NOT be executed
>>>>>>> .r9

是否有这样的扩展或类似效果的用户?

2 个答案:

答案 0 :(得分:3)

这确实是解决问题的最糟糕方式。

  • 不要让任何人直接在服务器上编辑文件。这些文件可以是只读的(或者可以解雇罪魁祸首)
  • 不要直接从SVN存储库更新服务器:更新工作副本,在此工作副本上运行所有单元和集成测试,然后标记修订,并将工作副本导出到服务器

如果人们无法正常工作,请不要再让他们工作了。

答案 1 :(得分:0)

尝试更新实时环境强制它们已满,仍然可能导致问题(请参阅上一条评论),但可以防止发生冲突。从那以后,您可以不必对版本控制之外的实时环境进行更改。

脱颖而出

svn up --accept theirs-full

我们确保所有开发人员都有办法更新实时环境,非常严格。我们无法通过实时服务器上的命令行进行更新,但我们在服务器上有一个中心脚本,我们可以在其上配置项目,然后我们可以通过脚本提供更新命令。然后,该脚本将首先执行diff操作,检查冲突并在没有任何错误的情况下进行更新,并向多个人和一个负责该项目的teamlead发送带有cmd输出的电子邮件。

它非常整洁,防止可怕的搞砸和真正的深夜。