2008-12-18 64 views
2

我想在subversion中按模式排除子目錄,因爲我們使用的開發工具正在生成它們。獲取工具來在別處生成目錄不是一種選擇。我們不想編輯〜/ .subversion/config中的全局忽略屬性,因爲難以保持一致性。我們試圖排除的目錄如下所示:在子版本中排除具有模式的子目錄

rootdir 
    |-> dir1 
     |-> dirToExclude 
    |-> dir2 
     |-> dirToExclude 

我想排除dir1和dir2中的dirToExclude。可以在rootdir上使用svn:ignore來完成,而不必將svn:ignore添加到dir1和dir2中?

+0

當你發現你想對工具的行爲做出如此激烈或廣泛的改變時,你應該開始質疑你是否使用了正確的工具,或者你是否做錯了。 – 2009-02-05 21:03:41

回答

3

可以使用SVN來完成:忽略ROOTDIR

svn:ignore號特別是應用遞歸,但只有在當前文件夾。由於每個文件夾都擁有自己的版本信息,因此沒有任何內容會傳播到子文件夾。見The Red Book, Chapter 7., Properties,腳註29.

這實際上很不幸;我寧願自己有一個類似.htaccess的財產傳播。

-3

你可能會考慮另一種方法。

通常,從源代碼控制中排除子目錄和/或文件的願望是指示那些子目錄和/或文件位於錯誤的位置 - 它們應該移出源代碼樹。例如,如果它們是構建輸出,則重新配置構建工具/腳本以將它們放置在遠離源的單獨目錄樹中。如果它們是生成的文件,請告訴相關工具在其他地方生成它們。

無論這些文件/子目錄的用途如何,您都可以重新配置以將它們移開。在此過程中,您可以簡化您的生活,並可能解決/緩解一些其他問題。

如果您的特定工具很難實現,那麼可能需要重新評估該工具。

祝福。