2010-08-04 165 views
0

部署應用程序我有我想要部署到不同的計算機上幾個相關的應用程序。他們每個人都有大量的通用代碼,並且有一些獨特的東西。例如,我有一個服務器和一個客戶端,它們使用大量的通用類來相互通信。我還有更多的服務器和客戶端使用一些相同的類,但彼此不相關。蟒蛇,SVN,共享代碼

簡單的解決方法是剛剛離開他們都在相同的目錄結構,使他們能夠使用所有他們所需要取其模塊,每當我部署一個服務器或客戶端,我把整個代碼庫。然而,代碼庫非常大,並且一些組件使用幾兆字節大小的數據文件。

理想我想能夠讓他們都有着相同的代碼,但能夠準確公正哪些文件每個組件需要部署......,他們會全部被連接到相同的版本控制。所以它會是這樣的:

在一臺計算機:svn checkout client1。另:svn checkout server1。另:svn checkout client2。然後,如果我修改client2和client1之間共享的一些client2代碼,那麼當我做svn update時,兩者都會更新。理想情況下,我不必手動挑選需要的文件,因爲這可能很煩人,但我可以處理。

有其他人有這個問題?它有一個更好定義的名字嗎?我可以用什麼解決方案來解決它?

回答

2

當它可以在模塊中分解時,使用所有'基本'代碼來進行回購/分支,並且在實際項目中,將它們包括爲svn:externals(同一個存儲庫或另一個無關緊要)。通過這種方式,您可以獨立地更新/處理模塊,將某些項目固定在該模塊的某些修訂版本上,或將它們保留在HEAD中。

一個新的項目要麼需要與已設置的外部大部分或手動添加所需的外部組件的基地項目的一個分支。一個簡單的shell腳本可以很容易地設置你需要的確切的外部參數。