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

Osc*_*Ryz 3 mercurial hgignore

例如,我有一个文件夹

PROJECT/db/
Run Code Online (Sandbox Code Playgroud)

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

jws*_*ple 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
Run Code Online (Sandbox Code Playgroud)

解决空目录需求的另一种方法是在需要之前在自动构建脚本中创建一个.

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

syntax: glob
db/
Run Code Online (Sandbox Code Playgroud)

  • 而不是隐藏文件,我使用自述文件,解释了为什么在repo中存在其他空目录 (2认同)