如何防止文件夹被推送到mercurial存储库?

时间:2014-12-12 08:22:09

标签: version-control mercurial

我的问题非常简单:我的项目中有一个文件夹,我希望版本化,但在推送更新时不会与项目的其余部分一起推送。情况是我和项目一起创建了一个Android应用程序存根,并且我不想推送它直到它实际上有些功能。这是一个非常笨重的文件夹。

我不想为该文件夹创建一个单独的分支,因为有两个问题:首先,每当我从远程拉出时更新该分支都需要合并;其次,在创建/删除数千个Android文件时,两个分支之间的交换需要明显的等待时间,这对我来说非常烦人。

我正在考虑以某种方式编辑.hgignore,但我认为远程仓库将忽略我的本地文件夹是错误的。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以将此代码段添加到您的repo的hgrc文件中:

[ui]
ignore = /path/to/.hg/hgignore

关于这个hgignore文件的观点是它是非版本的并且是本地的。内容hgignore可以是任何适合(版本化的).hgignore的东西。 e.g:

syntax: glob
/directory/to/ignore

文件的名称hgignore可以被称为任何东西,但它是我使用的。

答案 1 :(得分:1)

您可以使用配置[defaults]部分添加一些" --exclude"通常命令的选项(请参阅我对Mercurial hg ignore does not work properly的回答)了解更多详情。您甚至可以指定不希望在目录中提交的文件,例如stub/**.c,用于存根下面目录层次结构中的所有C文件。

但是......要小心,默默地忽略对文件的修改是危险的,并且此[defaults]部分已被标记为已弃用(它仍然存在于2.9.2中)。

如果这是一种临时情况,它可以解决您的问题:当您准备提交并推送存根时,您只需删除--exclude部分。