3

例如我有一个文件夹

PROJECT/db/

在创建了很多文件的地方,我想阻止 hg 跟踪这些文件但保留 db 文件夹?

4

2 回答 2

5

mercurial 本身不支持空文件夹,因此如果您忽略文件夹中的所有文件,则不会跟踪该文件夹。

来自 hg 书: http ://hgbook.red-bean.com/read/mercurial-in-daily-use.html

空目录很少有用,您可以使用一些非侵入性的变通方法来实现适当的效果。因此,Mercurial 的开发人员认为管理空目录所需的复杂性不值得此功能带来的有限好处。

如果您的存储库中需要一个空目录,有几种方法可以实现这一点。一种是创建一个目录,然后 hg 将一个“隐藏”文件添加到该目录。在类 Unix 系统上,任何以句点 (“.”) 开头的文件名都被大多数命令和 GUI 工具视为隐藏。这种方法如下所示。

$ hg init hidden-example
$ cd hidden-example
$ mkdir empty
$ touch empty/.hidden
$ hg add empty/.hidden
$ hg commit -m 'Manage an empty-looking directory'
$ ls empty
$ cd ..
$ hg clone hidden-example tmp
updating working directory
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ ls tmp
empty
$ ls tmp/empty

另一种解决空目录需求的方法是在自动构建脚本需要它之前简单地创建一个。

编辑: 我假设您知道如何在您的仓库中执行 hgignore 以忽略整个目录:
在您的仓库根目录中创建一个名为 .hgignore 的文件。输入以下文本:

syntax: glob
db/
于 2010-08-10T01:39:00.740 回答
0

据我所知,Mercurial 的忽略文件没有根,因此只需列出一个或多个模式以排除 DB 文件夹的内容。

于 2010-08-10T01:34:49.507 回答