已关闭。这个问题是 基于意见。它目前不接受答案。 想改进这个问题?更新问题,以便 编辑这篇文章 可以用事实和引用来回答它。 5年前关闭。\"2015-09-16 改进这个问题

我想知道您对我现在的设置的看法,我如何使用 SVN 做事,以及您是否能为我找到更好的解决方案。如果有人能为我的问题提出更好的解决方案,我将不胜感激。我想以最好的方式和最有效的方式做到这一点。

我的情况如下: 我正在维护一个连接到 mysql 数据库的 PHP 网站。我有一个子域,我正在测试所有内容。还有两个数据库:第一个用于测试目的,第二个用于生产服务器。 我在 Netbeans 中有一个项目,我用它连接到 ftp,所以我所做的每一个更改都会直接传输到网站。此外,我已连接到 SVN 服务器,网站的测试部分位于主干目录中。每次我想将更改上传到服务器时,我都会提交我的主干,然后将其复制到标签中。之后,我在 Netbeans 中准备了另一个项目,已经连接到同一个 SVN,但连接到最后一个标签副本。将主干复制到标签目录后,我切换到第二个项目并切换到标签中的最新版本。现在我在另一个目录中准备了正确的目录结构中的每个配置文件 - 我将它复制到我的生产项目中。之后,我在 Netbeans 中单击“运行”,然后打开一个窗口,允许我接受到 sftp 的传输,但这次是到网站的生产部分。

我的问题是:这是最好的方法吗?SVN中没有更直观的工具或选项,就不用每次都复制配置文件了吗?

有帮助吗?

解决方案

一个软件包有两种配置:

  1. 特定于环境的配置
  2. 特定于行为的配置

前者在开发、测试、阶段和生产环境之间有所不同。它最多应该有 4 行左右(Web 服务器基本 url、数据库连接字符串、SSL 证书、到其他相关组件的连接字符串/url、安装目录、身份验证领域等;你甚至很少需要其中的大部分),因为它在特定服务器上的此安装之外绝对零意义(即重新安装服务器时它可能会更改),通常不应对其进行版本控制(除非您的管理员参与其中,作为版本控制服务器安装的一部分)。

后者应该是版本化的,但环境之间不能有差异。它只是源代码/构建的一部分。

显然,需要将配置适当地拆分为两个文件,以便您可以对所需的一个文件进行版本控制,而不是对另一个文件进行版本控制。

其他提示

一个简单的解决方案是将所有配置文件保留在 repo 中,并拥有一个构建脚本,在需要时复制环境的正确版本。

许可以下: CC-BY-SA归因
scroll top