水银.版本控制和部署.不同的配置文件.如何?

Tho*_*wes 2 version-control mercurial tortoisehg bitbucket

我有如下设置.

位于bitbucket的私有存储库,我保留了'master'存储库.我的服务器上的存储库充当"实时"网站.我的笔记本电脑上的存储库充当我的工作副本.

我的流程如下.我对本地存储库中的文件进行了更改.我在当地提交这些.我将这些更改推送到bitbucket.然后我将这些更改从我的bitbucket提取到网络服务器.

然而,我的问题是我的本地副本使用不同的数据库,路径等配置设置,我想要的是我在bitbucket上的'config.php'文件包含服务器设置,以及我本地主机上的config.php包含本地设置.

我相信这可以通过.hgignore实现,但我没有成功研究.我遇到的问题是我制作我的服务器设置文件,将其推送到bitbucket,"忘记"我本地存储库中的文件,创建.hgignore,然后重新创建该文件.然而,当我'忘记'文件TortoiseHG通知并要求我将更改提交到bitbucket ....

任何想法将不胜感激.谢谢

附加点.

根据以下建议,我开发了如下设置:

我的笔记本电脑上有我的本地存储库,我可以在其中进行编辑.我有bitbucket本质上是'主'存储库 - 如果任何其他开发人员加入团队他们克隆这个.我的网络主机上有我的实时存储库.

在我的实时存储库中,我有一个.hgignore文件,它会忽略相应的配置文件.因此,当我hg pull从我的主机执行操作时,它会使用localhost配置文件按原样提取存储库,但是当我键入hg update(对于实时工作副本)时,这些文件将被忽略/不更新.

有人可以澄清一下我是否理解这一点,以及这是否是实现我想要的合适方式?

谢谢

Lau*_*lst 5

.hgignore 如果文件尚未版本化,则仅忽略文件,因此我认为您在问题中的想法不起作用.

关于本地配置的常见方法通常是同一主题的变体,如下所示:

  1. 根本不检查config.php.您可以config.example.php使用最常用的设置签入,并在README用户必须将其复制到文档中config.php然后进行编辑.

  2. 将任何共享设置放入config.php,并添加include语句以指向具有特定于机器的设置的无版本文件,例如config.local.php.您也可以config.local.example.php为此提供-file.

  3. 与2类似,但config.php包含所有默认设置,本地文件具有覆盖它们的能力.

  4. 签入config.dev.phpconfig.server.php-file含有设置两个环境,然后有一个无版本config.php,其包括上述的文件中的一个.优点是配置本身是版本的,您可以更新它们.

选择哪种变体,或者您是否进行其他变体取决于您的环境.