PHP忽略SVN冲突的扩展


Extension for PHP to ignore SVN conflicts

我相信我不是唯一一个在回家前尝试从SVN向实时服务器switch最新代码更改的人,结果发现一些blockhead直接修改了服务器上的文件,现在有五个PHP脚本标记为冲突,网站关闭了,你的妻子因为你晚餐迟到而对你大喊大叫,因为你必须手动解决所有冲突,因为回滚是不可能的。

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

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

是否有这样的扩展或类似效果的东西可以被用户使用?

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

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

如果人们不能正常工作,就不要再让他们工作了。

尝试更新实时环境,强制它们充满,仍然可能导致问题(请参阅前面的注释(,但这可以防止冲突的发生。从那时起,您可以不必对版本控制之外的实时环境进行更改。

在我的头顶

svn up --accept theirs-full

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

它非常整洁,防止了可怕的失误和深夜。