我应该放在hgignore中以避免mercurial遵循子目录的内容?

时间:2010-08-10 01:28:42

标签: mercurial hgignore

例如我有一个文件夹

PROJECT/db/

如果创建了很多文件,我想阻止hg跟踪这些文件但保留db文件夹?

2 个答案:

答案 0 :(得分: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来忽略整个目录:
在repo根目录中创建一个名为.hgignore的文件。请填写以下文字:

syntax: glob
db/

答案 1 :(得分:0)

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