gpt4 book ai didi

version-control - Mercurial 。版本控制和部署。不同的配置文件。如何?

转载 作者:行者123 更新时间:2023-12-04 07:00:52 24 4
gpt4 key购买 nike

我有如下设置。

bitbucket 上的一个私有(private)存储库,我在其中保存“主”存储库。我服务器上的存储库充当“实时”网站。我笔记本电脑上的存储库,充当我的工作副本。

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

然而,我遇到的问题是我的本地副本对数据库、路径等使用了不同的配置设置,因此我想要的是我在 bitbucket 上的“config.php”文件包含服务器设置,以及 config.php我的本地主机包含本地设置。

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

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

附加分。

按照下面的建议,我开发了如下设置:

我的笔记本电脑上有我的本地存储库,我可以在那里进行编辑。我有 bitbucket,它本质上是“主要”存储库——如果有任何其他开发人员加入团队,他们会克隆它。我的网络主机上有我的实时存储库。

在我的实时存储库中,我有一个 .hgignore 文件,它会忽略相应的配置文件。因此,当我从我的主机执行 hg pull 时,它会像本地主机配置文件一样拉取存储库,但是当我键入 hg update 时(到实时工作副本) , 这些文件被忽略/不更新。

有人可以澄清我是否理解正确,以及这是否是实现我想要的目标的合适方式?

谢谢

最佳答案

.hgignore 仅忽略尚未版本化的文件,因此我认为您在问题中的想法行不通。

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

  1. 根本不要 checkin config.php。您可以 checkin 具有最常用设置的 config.example.php,并在 README 中记录用户必须将其复制到 config.php 然后编辑它。

  2. 将任何共享设置放入 config.php 中,并添加一个 include 语句以指向具有特定于机器的设置的未版本控制文件,例如config.local.php。您还可以为此提供一个 config.local.example.php 文件。

  3. 与 2 类似,但 config.php 包含所有默认设置,并且本地文件能够覆盖它们。

  4. checkin 包含两个环境设置的 config.dev.phpconfig.server.php 文件,然后有一个未版本化的 config.php 其中包含上述文件之一。优点是配置本身是版本化的,您可以更新它们。

选择这些变体中的哪一个,或者您是否进行另一种变体,取决于您的环境。

关于version-control - Mercurial 。版本控制和部署。不同的配置文件。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com