2010-11-11 42 views
0

我要列出幾個快速事實爲更好地瞭解我的目標。維護網站真人版與JS和CSS精縮

正在開發一個項目,我們稱之爲AAA

  • 在我的網絡服務器(數據中心)我有AAA SVN倉庫。
  • 在同一Web服務器我有AAA的檢出版本(現場版 - 公共HTML)
  • 我在家裏第二結賬,我開發AAA項目

每一個新的版本我在家裏開發我更改提交到web服務器,然後更新有效區域。

現在我想介紹縮小了 JS和CSS版本。

後一點谷歌搜索的路要走爲SVN掛鉤。 預提交後提交掛鉤。

這就是我心目中現在:

  • 創建一個post-commit鉤子
  • ,每次我提交了新版本的post-commit鉤子運行腳本:
    • SVN更新Web服務器活區
    • 然後替換所有的.css和.js與縮小的版本
012文件

這適用於第一次提交。在第二次提交時,實時SVN更新失敗,因爲.css ans .js已經從第一次提交中修改(縮小)。衝突。

SOLUTION:

1#使用SVN出口,而不是SVN更新的現場版本。這需要很長時間,並且存在刪除文件等問題。解決方案EXCLUDED。

2#強制SVN更新直播AAA,並忽略(從以前的版本縮小的文件)的變化。這個解決方案對我來說很合理,但我沒有找到一種方法讓SVN更新忽略當前的變化(縮小的文件)。 SVN有可能嗎? 我試過SVN updade tf而不工作。

3#願意耳朵您的解決方案:)

感謝您的幫助。

回答

2

我不知道您的環境是什麼,但可以採用Capistrano部署實用程序使用的方法。

如果你的生活/生產環境支持軟/符號鏈接(如Linux),你要做的就是:

  • 在部署路徑

    ~/path_to_site/current 
    ~/path_to_site/releases 
    
  • 集內創建2個目錄〜/ path_to_site/current成爲正在服務的目錄

  • 執行SVN導出到發佈目錄,例如

    ~/path_to_site/releases/mysite_1234567 (timestamp) 
    
  • 導出完成後,改變你的軟鏈接的路徑電流/指向最新的版本,例如

    ~/path_to_site/current -> ~/path_to_site/releases/mysite_1234567 
    

這種方法的好處是:

  • 您的網站在導出過程中沒有被修改。例如,在您當前執行svn更新的過程中,您的站點只有部分更新。如果有人在那個時候訪問您的網站,誰知道他們會得到什麼。
  • 該網站的每個更新版本都是100%乾淨的出口。不要搞亂由於縮小過程而應該刪除或更改文件的文件。
  • 你有一個非常簡單的機制來回滾到以前的版本 - 簡單地指向當前/符號鏈接返回到發佈/
  • 在你現在做一個SVN更新的方法以前directoy,你讓公開提供所有.svn文件夾和其中包含的信息,因爲它們與公開可用的文件並排。這意味着某人可以獲得有關您的存儲庫位置等的信息。一般來說,擁有任何內容都是不好的做法,但您希望人們實際能夠訪問您的公共文件夾中的內容。

像Capistrano這樣的工具可以幫助像這樣的流程實現自動化,但並不是必需的。無論如何,這樣的事情可以通過post-commit hook來完成,具體取決於你的環境。

還應該注意的是,並非所有的服務器配置都允許您在正在服務的文件夾的路徑中使用符號/軟鏈接。

0

結帳持續集成工具,如哈德森,Cruisecontrol可以。這些工具能夠以指定的頻率監視存儲庫,並在結帳後執行所需的任務。這可能適合你的需要。

0

這是一個很好的。導出爲版本,即。附加一個時間戳例如。然後用符號鏈接控制實時版本。我使用Linux,所以我確定。

在此期間,我發現周圍的工作來實現在第一篇文章中描述的2#:

首先 - CheckOut的 - 使用svn籤的現場版 - 再壓縮的.js和。css文件 二到N - 更新 - svn reverve所有的.css和.js文件 - svn update - 再壓縮的.js和.css文件

的SVN反向將消除,以允許SVN的壓縮文件更新沒有衝突。

這種方式更快,但我想我會按照你的方法。

+0

我發現符號鏈接方法工作得很好。順便說一句,歡迎來到StackOverflow。通常,當回答/評論其中一個答案時,您應該使用答案下方的「添加評論」按鈕(正如我現在所做的那樣)。答案的作者將得到一個有人評論(所以他們知道去看看)的通知,並且它保留答案的清單,以及答案。 :) 祝你好運。 – Matt 2010-11-11 22:06:25

+0

符號鏈接解決方案已經實施並正在運行。 感謝您的評論提示。 – cmancre 2010-11-14 10:34:37