2011-03-21 67 views
2

我已經看到了除hgignore以外的所有內容,但我似乎無法將正則表達式轉換爲與子目錄一起使用。Hgignore一切除了,不管目錄

syntax: regexp 
(?<!\.cfm)$ 

適用於根目錄,但不適用於subdirs/subsubdirs。我不想手動指定這些。

這是我看到沒有忽略:

>hg stat 
? document.cfm 
? document.txt 
? subdir1\document.cfm 
? subdir1\document.txt 
? subdir1\subsubdir1\document.cfm 
? subdir1\subsubdir1\document.txt 
? subdir2\document.cfm 
? subdir2\document.txt 

這是我看到忽略:

>hg stat 
M .hgignore 
? document.cfm 

這是我看到:

>hg stat 
? document.cfm 
? subdir1\document.cfm 
? subdir1\subsubdir1\document.cfm 
? subdir2\document.cfm 

回答

0

所需的操作是不可能的。 Python只能進行固定寬度的負面查找。結束這個問題。感謝任何看着它的人​​。

+1

我認爲這個回答有誤導性,錯誤或過時。 Python絕對支持負向預測'(?!。* foo)',但它不支持'(?<!foo。*)'。請更新您的答案以反映這一點。 – HamZa 2014-02-24 14:46:23

0

添加文件會覆蓋忽略,因此對於.hgignore,如果您已添加文件,則無需擔心將其包含在內。這使得這更容易。

syntax: regexp 
(?<!\.cfm)$ 

假設是你所要做的是不顧一切,除了.cfm文件。例如:

% hg stat --all 
A .hgignore 
I adir/file.cfm 

在一般情況下,不要過於複雜的正則表達式行 - 如果你(UN)忽略了兩類不同的東西用兩行。

+0

在您的stat命令中,file.cfm是I代表Ignored。我希望我的子目錄.cfm文件是?未知,不被忽略。這個正則表達式只抓取當前級別的目錄項。 – ryan 2011-03-22 17:11:41

+1

對不起,您可以修改原始問題以清楚地描述您想要忽略的內容以及您不想忽略的內容,最好使用示例,並且我們可以快速地將其整理出來。 – 2011-03-22 17:35:47

+0

謝謝,編輯。 – ryan 2011-03-23 12:16:29