Mercurial repo:忽略包含自己的repo的所有文件夹?

时间:2010-10-22 14:59:50

标签: mercurial versioning hgignore

我大约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,它们代表单独的项目。

我想添加一个repo来跟踪当前未跟踪的所有内容,但是想要忽略当前拥有自己的存储库的文件夹。我知道使用.hgignore文件,但据我所知,这将要求我明确忽略包含repo的每个文件夹。这不是上面例子中的问题(只有两个现有的回购),但我们的实际设置比这更多的项目。

有没有办法告诉Mercurial动态忽略所有包含repo的文件夹,并跟踪其他所有文件夹?

1 个答案:

答案 0 :(得分:3)

它已经开箱即用了。请尝试以下演示:

hg init demo
cd demo
hg init foo
cd foo
echo foo>>foo.txt
hg stat
? foo.txt
cd ..
hg stat
# Nothing!

您应该考虑设置主要回购商以使用subrepositories来跟踪已拥有自己的回购商的文件夹中的更改。如果不这样做,那么当您在main中提交时,其中一个项目中的更改将不会自动提交。