2008-12-16 108 views
6

我剛剛開始/熟悉Subversion,並想知道 哪個協議在通過網絡訪問Subversion存儲庫時提供最佳性能file://或svn://?如果我們不使用svn://協議,那麼會遺漏任何我們無法使用file://協議來關閉的功能。我們都在使用Windows身份驗證並使用NTFS/UNC安全性的NT域名&上。顛覆協議的性能

TIA!

回答

14

svn書建議您使用file://協議爲多個用戶

Choosing a Server Configuration

不要有所有用戶的簡單的想法所吸引直接通過file:// URL訪問存儲庫。即使存儲庫通過網絡共享隨時可用,但這是一個糟糕的主意。它刪除用戶和存儲庫之間的任何保護層:用戶可能意外(或故意)損壞存儲庫數據庫,很難將存儲庫脫機進行檢查或升級,並且可能導致文件許可問題(請參閱「支持多種版本庫訪問方法」一節)。請注意,這也是我們通過svn + ssh:// URLs - 從安全角度警告訪問存儲庫的原因之一,它與通過file://訪問的本地用戶實際上是一樣的,並且它可能會帶來所有相同的問題如果管理員不小心

7

如果要使用Windows身份驗證,請使用http(s)協議和apache。設置起來有點困難,但不一定更快,但允許您使用標準apache身份驗證方法進行身份驗證。包括各種基於窗口的認證方案,或Kerberos。

Btw。通常協議速度不是svn速度的一個因素。 Svn將信息緩存在磁盤上,因此大多數常規操作都基於本地緩存。接下來,速度因子位於存儲庫和網絡帶寬中,而不是協議中。

+0

我完全同意。 – 2008-12-23 21:10:13

0

正如Paul de Vrieze所說,SVN使用的協議不會像其他因素那樣影響性能。如果你在一個小型局域網上,那麼SVN協議可能​​令你滿意。在所有其他情況下,似乎最好使用HTTPs://與Apache。我一直在局域網中,SVN://的性能比HTTPS://連接到互聯網的性能差。

你還會發現在Apache可能是一個更易於管理的解決方案也是在安全性方面,還是SVN倉庫查看。

5

甲結帳/更新過的svn://是大約比通過HTTP(S)快4-12倍://。這個因素取決於文件/文件夾的數量和文件大小。 由於每個文件都是完整的http請求響應週期,因此Apache在很多小文件上速度要慢得多。 在Tortoise中,你可以很容易地看到速度下降:

簽出一個大的java項目如果你傳輸一個巨大的.jar,傳輸正在上升,在獲取源文件和創建包結構時,它會丟棄。

同樣重要的是svn籤是在客戶端比慢SVN導出並且還蝕(Java)的比龜/ CMD慢得多。

1

我同意其他人svn://遠遠快於http://。話雖如此,我在我的存儲庫上使用http://,因爲我喜歡mod_authz_svn的訪問控制文件,而我還沒有升級到1.5。

由於我的主存儲庫非常龐大,我們維護svn://以只讀方式運行。我建議用戶將你的初始結賬作爲svn://然後使用svn relocate將其轉換爲http:// url來提交。更新svn://在我們可以接受的時間內運行。