2012-09-12 211 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 '文件。 –