詳細內容請查看本人博客 www.thinkidea.net
歡迎高手批評指正!!!
這是我自己在紙上畫的一個關於SVN+patch+rsync部署生產環境的圖:
先看圖:
我的思路是這樣的:
1 SVN服務器是中心,它存儲兩個重要的東西:網站目錄及文件 和 補丁包程序;
2 測速環境中的代碼均來自SVN服務器,分為兩部分:網站源程序和補丁包,均通過svn checkout 獲得;
3 測速環境下,開發完成后,通過svn commint -m 提交;
4 本地svn客戶端,更新;
5 通過本文下方“svn 補丁包生成”,生成相關補丁包;
6 svn補丁包提交至svn服務器;
7 代碼提交服務器上 svn up 補丁包;
8 提交至生產環境rsync覆蓋 。
===========20120618update================
code目錄來存放網站源文件
patch目錄用來存放補丁包程序的,在這里我按照日期進行存放
這2個目錄可以在2台服務器上、可以在一台服務器的不同目錄。
這2個目錄可以使用rsync 或者使用 \cp (強制覆蓋)進行更新
已測試通過
========================================
貌似是有點復雜啊,呵呵。
【想法的初衷是來自:如果網站有上萬個文件的情況下,怎么解決本地提交和服務器下rsync的時間消耗】
原本的代碼提交服務器,看我 上一篇文章 。
原先這方面的架構缺點,我認為,在大批量文件上萬的情況下,一方面svn更新/提交要時間;二方面rsync全目錄比對也需要時間;
我修改后的這個,只維護補丁包程序,大大減少這中間的時間消耗
且根據日期不同,補丁包可按照版本、日期等歸案。
rsync推送的也只有小批量的補丁包程序。
補丁包程序目錄結構(格式參考)
|-patch
|——patch_0602
|——patch_0605
|——patch_0611
|——patch_0614
|-patch
|——V1.0
|——V1.2.2
|——V2.0bulid
|——V2.0stand
類似這樣的。
關於patch的補丁包生成,他是這樣的一個過程 看截圖部分20120615補充
另外,非常希望和有這方面經驗的朋友,討論學習!!!