2012-01-30 64 views
20

我最近將我的SVN客戶端從1.6.9升級到1.7.2,在轉換爲新格式後,我發現每個子文件夾都不再有.svn。對於我的特定配置,這不是很方便。SVN不再在所有子文件夾中寫入.svn?

有沒有辦法解決這個問題,或恢復到從CO的每個子文件夾將有一個.svn的舊行爲?

+0

我意識到我的問題很隱晦,但我試圖在詢問之前搜索google/bing,但沒發現任何相關信息。任何幫助或指針,將不勝感激。 – MikeJ 2012-01-30 20:19:17

+16

你濫用SVN的哪些部分讓.svn文件夾在任何地方都很方便? – Collin 2012-01-30 20:20:11

+1

您可以隨時降級您的svn客戶端(我認爲您必須將其刪除並安裝舊版本,然後可能再次檢索您的存儲庫(因爲它可能不是向後兼容的) – tjarratt 2012-01-30 20:22:48

回答

38

顛覆1.7功能的Subversion工作拷貝元數據管理系統,代號爲WC-NG的完全重新編寫。舊系統是Subversion的第一部分,隨着時間的推移變得越來越難以維護和擴展。 WC-NG旨在提供即時性能改進,同時還可以實現許多未來的功能增強。

Subversion 1.7中引入的變化的一個關鍵特性是將工作副本元數據存儲集中到一個位置。在工作副本的每個目錄中,Subversion 1.7工作副本只有一個.svn目錄,而不是工作副本的根目錄中的.svn目錄。該目錄包括(除其他之外)SQLite支持的數據庫,其中包含該工作副本的所有元數據Subversion需求。

即使數據以結構化格式存儲,數據之間的關係也很複雜。我們極力阻止外部工具修改此數據庫中保存的數據,因爲此類修改可能會導致工作副本損壞。

Read more here.

+5

-1:這個答案有點超出了主題,作爲問題的核心部分(「是否有辦法恢復到每個子文件夾將具有.svn?的舊行爲」)被忽略。 – Wizard79 2012-11-11 16:20:14

+10

@Lorenzo我認爲人們應該能夠從所提供的文本中讀出「不」。 – JPuge 2013-05-08 09:19:57

2

的最直接的方式來獲得顛覆寫出來的.svn目錄,每個目錄是1.7系列之前,你顛覆降級到的版本。 Subversion 1.6.23是具有所需行爲的最後一個版本。

完成此操作的另一種方法是與Subversion 1.7及更高版本一起工作,即單獨檢出項目的每個子目錄。例如,如果您有類似的目錄結構的項目:

project 
`- bin 
`- etc 

你可以檢查出來做這樣的:

mkdir project 
cd project 
svn co svn+ssh://[email protected]/src/project/bin 
svn co svn+ssh://[email protected]/src/project/etc 

這僅僅是如果你有幾個目錄和他們的組織容忍很淺。

否則,降級到較舊的顛覆是你最好的選擇。