2012-09-12 98 views
2

我有一个包含我的Maven项目的目录。它看起来像这样:忽略Mercurial子目录

.hg 
.idea 
parentProject 
project1 
    .idea 
    docs 
    src 
    target 
    pom.xml 
project2 
    .idea 
    docs 
    src 
    target 
    pom.xml 
target 
pom.xml 
.hgignore 

我想忽略在我所有的项目.ideatarget目录。我已将.ideatarget目录包含在.hgignore中,但它只忽略.hgignore文件中的那些目录。这意味着仅在根目录.ideatarget中被忽略。

如果我在所有子项目中添加.hgignore文件,这不会更改任何文件仍然不会被忽略。

我忽略列表如下:

build 
dist 
target 
faces-config.NavData 
.idea 
.iml 

我应该如何在.hgignore指定要获得.ideatarget来自世界各地的忽略?

+0

请注意,[IntelliJ中有关于此的特定错误](http://youtrack.jetbrains.com/issue/IDEA-65229)。 –

+0

我不使用intellij来提交或推送,我只是用它编码,而是通过命令行进行提交和推送。 –

回答

5

尝试hgignore with regex

syntax: regexp 
^\.idea$ 
^target$ 
+0

不工作,如果我将这些添加到.hgignore中并运行hg st,我仍然会看到很多位于.idea目录中的文件。 –

+0

你需要'hg忘记'来删除错误添加的文件 –

+0

hg忘记解决了我的问题。谢谢:) –

0

**/.idea**/target这样的东西怎么样?查看possible patterns here

+0

如果我这样做:** /。idea它给了我:无效模式(relre):** /。idea。我也尝试过**想法,同样的无效模式。 –

+0

它适用于目标目录吗?可能你必须像这样逃避'.':'**/\。idea' – rlegendi

+0

有了目标,它似乎就像这样工作:target /但是带有。想法我无法得到它的工作。我试过这个:**/\。想法相同的无效模式 –

0

你应该需要明确忽略target目录。

如果您错误地将它添加到Mercurial,则会出现此问题。比方说,你已经完成了以下内容:

  1. 创建了一个项目并编译
  2. 决定将源控件添加到项目中,以便你 初始化的Mercurial库几次(因此target目录 存在)和执行hg add命令 (从IDE隐式或显式地执行)。巴姆!您现在有 告诉Mercurial target是应该包含的目录。

相信我。我去过那儿 !

要解决:请从以下命令行:

hg forget target 

当谈到.idea目录我想有没有其他办法,而不是使用.hgignore文件,但我很困惑,为什么的IntelliJ IDE没有按不会自动添加。 (我自己不是一个Intellij IDE用户)。这是真正的问题。

+0

其实,[IntelliJ doc](https ://www.jetbrains.com/help/idea/managing-projects-under-version-control.html)建议*包括*而不是忽略'.idea'文件夹,除了'workspace.xml'和'tasks.xml '文件。 –