gpt4 book ai didi

Mercurial 忽略文件

转载 作者:行者123 更新时间:2023-12-03 00:13:37 25 4
gpt4 key购买 nike

我试图让 Mercurial 忽略配置文件,但未能使其正常工作。

我已经使用 hg init 在我的服务器上创建了一个存储库,并将该存储库克隆到我的计算机上。然后,我希望能够编辑配置文件,但不将这些更改提交回服务器。

我尝试在克隆的根目录中创建 .hgignore,但 Mercurial 使用 ? 标记该文件,并且无论我是否提交它,它仍然会继续记录我的配置更改。

我是否在错误的位置创建了 .hgignore 文件,该文件是否需要提交?在服务器上初始化存储库之前是否需要创建它?

最佳答案

  • .hgignore不需要在init之前创建
  • 如果配置文件将被其他人使用,您最好提交 .hgignore,这样其他人就不必创建它,但是 Mercurial 不需要这样做来忽略您的本地文件(请参阅示例)
  • 是的,.hgignore 必须位于根目录

简单示例。

初始化存储库:

$ mkdir test 
$ cd test
$ hg init

创建文件

$ touch foo 
$ hg st
? foo

现在在您的存储库的根目录中创建一个 .hgignore:

$ echo 'foo' > .hgignore 

foo 现在被忽略:

$ hg st 
? .hgignore

请注意,无需提交 .hgignore 即可实现此功能。

有点棘手

如果配置文件和 .hgignore(忽略配置文件)都在存储库中提交,那么配置文件更改将被跟踪(换句话说,.hgignore 将不起作用)

创建配置并提交

$ touch config
$ hg ci config -Am 'adding conf'

忽略它:

$ echo 'config' >> .hgignore

提交.hgignore:

$ hg ci .hgignore -Am '.hgignore'

然后,如果您克隆存储库:

$ cd ..
$ hg clone test other-user
$ cd other-user

并修改配置:

$ echo 'new config param' >> config

然后 hg 将显示更改:

$ hg st
M config

如何处理这个问题?

您可能希望在存储库中拥有一个主要的默认配置文件,该文件是有版本的,global.cfg

您将要求用户创建一个 local.cfg,他们将在其中放置本地设置。并且您的脚本将获取 local.cfg(如果存在):本地设置会覆盖全局设置。当然,在 .hgignore 中添加一行来忽略 local.cfg ;)

替代方案:没有全局配置文件,只有用户在本地复制和修改的config.example。这里的缺点是您无法轻松跟踪版本之间的更改。

关于Mercurial 忽略文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965303/

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