2012-05-09 95 views
2

使用SVN,當我不提交或「檢查更新」(或命令行SVN狀態),我得到一個清單幾個文件夾。
爲什麼我會看到文件夾中沒有任何更改的文件? (有被設置爲忽略的更改的文件)
是否有改變這種行爲?SVN說文件夾已被修改

編輯:
的svn status輸出:

 
>svn status 
M  . 
M  src\com\proj\server 
M  src\com\proj\server\DataAccessManager.java 
M  src\com\proj\server\hibernate.cfg.xml 
M  war 
M  war\WEB-INF 

,並請參見diff對戰爭的文件夾

 
>svn diff war 
Index: war 
=================================================================== 
--- war (revision 171) 
+++ war (working copy) 

Property changes on: war 
___________________________________________________________________ 
Added: svn:ignore 
## -0,0 +1 ## 
+mycrm 
Index: war/WEB-INF 
=================================================================== 
--- war/WEB-INF (revision 171) 
+++ war/WEB-INF (working copy) 

Property changes on: war/WEB-INF 
___________________________________________________________________ 
Added: svn:ignore 
## -0,0 +1,2 ## 
+classes 
+deploy 
+0

你檢查過這些文件是否真的沒有改變? 您是否檢查過編譯生成的文件是否被忽略? SVN設置上還有一些關於忽略空白的內容。 –

回答

4

首先,它始終是提供輸出和日誌是個好主意以避免那些試圖理解你的問題的人猜測。

這就是說,有三種可能性:

(1)你已經改變了文件夾SVN屬性(例如,在合併過程中)。在這種情況下,您將在秒的列中看到M列(不是首次進行常規更改)。

(2)被更改的文件是版本化的(已經在版本庫中)。你不能忽略版本化文件(只有未版本化的文件)。未版本文件將標記爲?,如果沒有?存在 - 文件是版本。

(3)svn status的默認行爲是顯示版本文件。要禁用 - 使用-q選項(即svn status -q)運行它。

更新:隨着提供的日誌很明顯,它的情況(1) - 您的文件夾上的SVN屬性已更改。在列表中出現的每個目錄上運行svn diff --depth=empty以查看哪些屬性發生了更改(簡單svn diff也可以做到這一點,但過濾掉實際需要的信息會更困難)。

+0

我編輯了問題以添加svn status的輸出。 看來,第一個案例匹配,因爲我在第二列中有M。 – kroiz

+0

我想沿着這條路的某個地方,我設置了一些文件夾被忽略,並沒有意識到這是一個需要承諾的改​​變。非常感謝。 – kroiz

4

使用什麼樣的客戶端嗎?

如果使用TortoiseSVN,並添加文件到忽略列表 - 然後將文件夾必須comitted(它的性質發生了變化)。

+2

事實上,添加一個文件夾到忽略列表必須被提交(除非它是「忽略提交」這是本地的)我的辯護我會說很難看到,使用tortoise svn,文件夾的變化是什麼,這就是我沒有犯下的原因。因爲我總是檢查我在提交之前所做的更改。 – kroiz