防止目录被推入mercurial

时间:2012-03-29 03:31:14

标签: version-control mercurial dvcs bitbucket hgignore

我在本地计算机上创建了一个新的存储库,添加了文件并在我的工作副本中提供了以下结构:

-/a     
-/b

我想将我的初始提交推送到Bitbucket上的远程存储库。但是我想忽略目录b,以免它被推送。我添加了

syntax:
glob b/**

到我的.hgignore文件。无论如何都会推送b目录。

我该如何防止这种情况?

2 个答案:

答案 0 :(得分:5)

这不能在Mercurial中完成:您不能只推送文件的初始版本,然后忽略以后的修改。您也可以不推送变更集的一部分 - 您可以推送整个变更集。这样,Mercurial可确保您在所有克隆中拥有一致的项目快照。

当他写道.hgignore文件是未跟踪文件的过滤器时,Preet是正确的。 .hgignore文件用于过滤hg status等命令的输出,并通过运行hg add来过滤添加的文件而不再使用其他参数。

答案 1 :(得分:1)

.hgignore中添加:

^b/.*

b/*如果您使用的是低级glob语法(正则表达式可以让您获得更多控制权)。

语法在第一行定义,所有规则在以下单独的行中定义。

如果你想要通配,第一行是syntax: glob,如果是正则表达式,第一行是syntax: regexp(默认隐含)。请参阅documentation

请注意,mercurial实际上不会推送空目录,因此您可以测试它的唯一方法是在b/中有一个文件