我即將建立一個SVN服務器,我需要推出代碼到幾個不同風格的遠程服務器(Windows 2008和Linux(Apache和Tomcat)) 。SVN架構 - 同步/導出文件到遠程服務器
什麼是推出代碼的最佳方法?服務器之間的Rsynch? SFTP?從遠程服務器調用SVN導出?我正在考慮每個存儲庫上的提交後操作/事件以啓動此操作。多平臺解決方案將是關鍵。
編輯#1 剛剛獲悉,SVN出口不會同步,會留下已刪除文件的完整在遠程服務器上...
編輯#2
- 我要考慮到許多存儲庫將被推送(或拉到)這些服務器。
- 這些參與PHP或ASP.Net項目(網站/應用)
解決方案
- 在其他服務器上安裝了哈德森
- 結賬源代碼,我們的網絡服務器 上的特定位置
- 爲某個特定項目創建一個工作,該工程將目錄更改爲工作副本並調用svn up
- post-commit鉤子,做對工作的URL的wget - 哈德森/工作/ name_of_job /建造延遲= 0秒
我是否需要在所有機器上安裝CI服務器?還是它從一個地方運行?無論如何CI服務器都不會調用單個存儲庫的更新?它與調用svn更新並調用該頁面的php,.net和.jsp頁面有什麼不同? CI會給我們什麼其他功能?發生的操作日誌? – TekiusFanatikus
這取決於您選擇的CI系統的工作方式,但您可能需要將其安裝在所有機器上(或設置網絡共享來移動)。例如,CI的功能取決於您的代碼需要如何部署 - J2EE應用程序,它將編譯,運行單元測試並部署到Tomcat中(例如,您可以/應該預編譯您的ASP.NET應用程序)。如果你所有的代碼都是從一個基本的工作副本運行的,那麼你所需要的*就是一個簡單的svn(理論上)。在您的服務器上有一個可以調用系統命令並修改運行代碼的網頁聽起來對我來說是一個重大的安全風險。 – alroc
我無法從PHP調用svn(訪問被拒絕和後期調查,與您就其不安全性達成一致),所以我將不得不安裝CI服務器並嘗試從這個角度進行嘗試。所以,理論是我的帖子提交從Hudson調用一個URL,然後依次執行svn?股票不是我們的選擇。謝謝! – TekiusFanatikus