2011-05-24 40 views
1

我有一個奇怪的,我還沒有能夠整理出來。當我從SVN簽出分支時,我經常會看到多個不相關的文件,其中SVN屬性更改,可以在結帳後直接或在更改一個或兩個文件後進行。在工作拷貝結帳時SVN屬性發生變化

在分支工作過程中,我改變了幾個文件;正常情況下,這些更改顯示在'svn stat'中。但其他文件的屬性已更改 - 僅此而已。任何人見過這個?任何人有想法?

馬特

+0

什麼樣的屬性正在改變?它總是一樣的嗎? – forsvarir 2011-05-24 11:09:07

回答

1

有人可能已經從另一個分支合併到「你的」分支。 SVN跟蹤哪些修訂已合併到分支,並更新svn:mergeinfo屬性

(AFAIK,這僅適用於Subverson 1.5或更高版本)。

+0

公平點,但文件總是空的。如果有合併,我會認爲會有一些內容改變。 – 2011-05-24 11:19:27

+1

它是1.5+。然而在此之前,人們經常使用一個腳本(svnmerge),它基本上做了同樣的事情,儘管它們的屬性名稱不同。該屬性通常也會在文件夾中(因爲這是您合併的級別),而不是文件。 – forsvarir 2011-05-24 11:19:31

+0

嗯,好的。會做一些閱讀。我正在使用1.6 – 2011-05-24 11:22:06

2

即使合併的文件本身沒有變化,或者文件之間似乎沒有差異,Subversion也會更改svn:mergeinfo的值。 svn:mergeinfo用於跟蹤合併完成的位置,而不是合併是否導致更改。這樣,Subversion可以說這個分支上的這個版本已經合併了,所以他們不應該再合併

我不喜歡通過此屬性進行合併跟蹤。一個svn merge可以報告數百個被更改的文件,但仔細檢查顯示只有少數被更改。剩下的只是他們的svn:mergeinfo屬性發生了變化。

有時開發人員有目的地回覆返回只有其svn:mergeinfo屬性更改的文件,只檢查實際上其內容已更改的文件。這當然會導致更多的文件在下次合併時需要合併。有時開發商將清理svn:mergeinfo這真的弄髒了事情。

svn:mergeinfo確實引起了很多混淆。事實上,有時我希望有一個開關可以關閉合並跟蹤。有些網站更適合跟蹤自己的合併。

但是,這就是我們所擁有的,所以我會和它一起生活,並培訓開發人員。