我大约 6 个月前加入,当我到达时,我的团队没有使用任何形式的版本控制。此后我说服 mgmt 在新项目中使用 Mercurial,因此我们的网络服务器上有以下结构:
-MainFolder (which includes files for the main project)
+Subfolder A, which contains (old) project A with NO hg repo
+Subfolder B, which contains (old) project B with NO hg repo
+Subfolder C, which contains (NEW) project C AND a hg repo
+Subfolder D, which contains (NEW) project D AND a hg repo
请注意,当前拥有存储库的唯一文件夹是子文件夹 C 和 D,它们代表单独的项目。
我想添加一个存储库来跟踪当前未跟踪的所有内容,但想忽略当前拥有自己存储库的文件夹。我知道如何使用 .hgignore
文件,但据我了解,这需要我明确忽略包含存储库的每个文件夹。在上面的示例中这不是问题(只有两个现有存储库),但我们的实际设置有比这更多的项目。
有没有办法告诉 Mercurial 动态忽略其中有存储库的所有文件夹,并跟踪其他所有内容?
最佳答案
它已经可以开箱即用地执行此操作。尝试以下演示:
hg init demo
cd demo
hg init foo
cd foo
echo foo>>foo.txt
hg stat
? foo.txt
cd ..
hg stat
# Nothing!
您可能应该考虑设置主要存储库以使用 subrepositories用于跟踪已拥有自己的存储库的文件夹中的更改。如果您不这样做,当您在主项目中提交时,这些项目之一中的更改将不会自动提交。
关于Mercurial 仓库 : ignore all folders which contain their own repo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3998096/