我們有一個運行我們的SVN服務器(目前爲Visual SVN)的編譯服務器,並且每晚都會建立。服務器上的本地結賬需要幾分鐘的時間。我正在尋找方法來改善這一點。用於快速本地簽出的SVN協議
哪個協議提供最快速的SVN服務器訪問?
注意:安全是服務器上的一個問題。如果快速協議沒有與HTTPS相同的安全級別,我們可能會嘗試僅使用快速協議進行本地簽出。
我們有一個運行我們的SVN服務器(目前爲Visual SVN)的編譯服務器,並且每晚都會建立。服務器上的本地結賬需要幾分鐘的時間。我正在尋找方法來改善這一點。用於快速本地簽出的SVN協議
哪個協議提供最快速的SVN服務器訪問?
注意:安全是服務器上的一個問題。如果快速協議沒有與HTTPS相同的安全級別,我們可能會嘗試僅使用快速協議進行本地簽出。
您應該使用Jenkins來建造。 Jenkins可以自動執行構建,構建可以通過在每次提交後執行構建或在特定時間(或兩者都有)自動觸發。例如,你可以說「在晚上7點建立應用程序,每晚」。更好的是,你可以給一個安靜的時期,所以構建不會開始,直到每個人都完成。有點像說「每晚在晚上7點建立應用程序,但只有30分鐘後沒有人檢查任何代碼」。
更好的是,Jenkins通常可以找出哪些文件被構建過程改變了,哪些文件被創建,然後恢復這些文件。詹金斯可以做更新,而不是結帳這將更快。
我敢打賭,主要的問題並不一定是你的夜間搭建花費太長的時間來結帳,而是有人不得不坐在他們身邊並運行構建。由於詹金斯自動運行構建,然後通過電子郵件報告其狀態,沒有人必須真正坐在旁邊,並觀看構建發生。
至於回答你的問題:
http://
和https://
是最慢的,因爲所有的檢出發生過Apache服務器。但是,由於其靈活性,http://
可能是最流行的協議。svn://
和svn+ssh://
更快,但不像http://
那麼常見。file://
是最快的,但只能在服務器上使用,並且它使用文件級別的安全性來說明誰可以簽入或簽出文件。它不應該被任何人使用,因爲任何具有簽入和簽出訪問權限的用戶也可以直接訪問存儲庫目錄下的文件。通常,用戶不在Subversion服務器中,只有運行Subversion進程的用戶才能擁有和寫入存儲庫目錄(有時可讀)。有些網站將Jenkins放在他們的Subversion服務器上,然後使用file://
協議來完成他們的簽出。只要確保運行Jenkins的進程也運行你的Subversion服務器。
file:///
協議,我想。也許不是全面結帳,但更新將可用於你的情況?
如果快速協議不具有相同的安全級別爲HTTPS
file:///
沒有任何安全性可言!
在這裏,我將假設操作很長(幾分鐘),因爲您有大量文件(或大量內容)。
爲了避免昂貴的結賬(時間),你可以做
svn revert
恢復本地更改svn update
取得更新到最新版本不管什麼協議你使用,這種技術是非常類似於結帳,但非常快。
還有一個選項:倉庫的構建服務器上
svnsync
這應該解決問題是變化的大小顯着小於結帳的大小(可能是)。即使沒有,更頻繁地運行svnsync,也會將同步的時間轉移到後臺,因此編譯時間會減少。