代码之家  ›  专栏  ›  技术社区  ›  Luke

如何使用subversion管理生产/测试/开发配置信息?

  •  2
  • Luke  · 技术社区  · 17 年前

    我正在开发一个结合了web和客户端的应用程序,它有生产、测试和开发分支。我正在使用svn后提交钩子将更新部署到生产和测试服务器。客户端应用程序需要根据生产、测试或开发指向不同的URL。我如何使用subversion来管理它?我想到的选项是:

    选项1
    保留一个包含分支特定详细信息的文件,该文件永远不会在分支之间合并。


    无论哪个分支,都可以创建客户端的生产、测试和开发版本,并依靠svn钩子来获取正确的二进制文件。

    你是怎么处理的?有更好的主意吗?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Victor Daniel    17 年前

    我们的应用程序为每个部署的环境保留了一个单独的目录,其中包含配置文件。当构建服务器为特定环境运行部署任务时,它知道从哪个目录中提取配置文件。指向正确目录的指针是构建服务器(在我们的例子中为Pulse)的构建定义的一部分。为Pulse任务构建代码的分支也是任务规范的一部分。这使得部署服务器的决策独立于分支机构,以便我们发布新版本时可以重新调整服务器和数据库的用途。

    + dev-server
    +---jdbc.properties
    +---build.properties
    + test-server
    +----jdbc.properties
    +---build.properties
    

    配置文件不会与应用程序的其他部分(主干、分支等的兄弟)分支。它们在svn树中有自己的位置,并在每个分支中作为一个 Subversion external definition .

    我们这样做是因为每个分支可能都部署了许多服务器(开发、测试、构建、自动化等)。

        2
  •  1
  •   Andrew Siemer    16 年前

    通过模板生成,您还将拥有具有相同环境特定配置文件的自定义配置部分,但您可以直接用适当的配置文件名重写基本配置文件的一部分,而不是在部署时重命名。

    不过,按环境将配置文件分块可以为您提供很大的灵活性,特别是在您开始管理许多使用相同或相似配置风格的网站时。无论如何,您的配置应该由自动化环境的某些方面决定!