3

我创建了 .hgignore 文件,但在此之前我将项目结构发送到服务器。现在 hgignore 不适用于之前发送的那些文件。我在某处读到我需要从跟踪列表中删除这些文件和目录或以某种“私人”方式添加它,但我无法弄清楚我需要如何做到这一点。问题更加复杂,因为我编写了 sh 脚本,该脚本将此结构的一部分复制到其他地方(项目由一些客户端应用程序和 www 服务器组成,这些服务器文件在每个 hg push 命令之后被复制到其他地方)。所以我想忽略一些文件(但希望这些文件存在于服务器上,只需通过一些配置推送一次)并且我想用我的 sh 脚本复制那些被忽略的文件(这个脚本中最重要的是我正在使用'hg archive' 来处理我想要复制的内容)。

4

2 回答 2

13

.hgignore仅忽略尚未添加到存储库的文件。用于hg forget停止跟踪已添加的文件。

您不能签入文件并在之后忽略更改。对于配置文件,最佳做法是签入模板文件,而忽略实际的本地配置文件。拉取 repo 的人可以复制模板文件并进行本地更改。您的 sh 脚本可以自动执行该操作。

于 2012-03-22T01:14:04.733 回答
1

基本上,马克托洛宁已经在他的回答中说了所有重要的事情。

我只是想为他的这部分答案添加一个示例:

对于配置文件,最佳做法是签入模板文件,而忽略实际的本地配置文件。拉取 repo 的人可以复制模板文件并进行本地更改。您的 sh 脚本可以自动执行该操作。

前段时间我用一个详细的例子回答了一个类似的问题:
how to ignore files in kiln/mercurial using tortoise hg "that are part of the repository"

我的答案是针对 Visual Studio(根据您迄今为止提出的问题,您显然没有使用它),但它可以帮助您了解基本概念,因此您应该能够轻松地将其应用于任何其他环境。

于 2012-03-23T20:31:25.330 回答