2011-07-27 32 views
2

目前我們有一個非常簡單(但有效)的發佈過程。我們在SVN中標記新版本。該版本將被導出到測試環境。從那裏我們rsync到驗收環境,並從那裏到生產。在發佈過程中,我應該縮小我的css和js文件嗎?

現在我們要開始縮小css和js文件。我想在發佈到驗收的過程中對我們的測試環境進行縮減,以便在驗收環境和生產環境中都縮小文件。但是,如果我在那裏縮小文件,時間戳會更改,並且每次傳輸所有css和js文件時,rsync都會傳輸,即使縮小的內容沒有更改。

我的問題是:解決這個問題的最佳實踐是什麼? 我應該使用與rsync不同的機制來發布新版本嗎? 我應該把縮小版本放在SVN中嗎?但我不想在開發中使用縮小的文件,那麼什麼是縮小(並可能結合)它們的最佳時機?

我們使用PHP 5.3.6,並開始考慮Yui-compressor,因爲我可以在腳本中輕鬆使用它。

+0

這些mifieds文件每次同步時出現什麼問題? –

+0

一個問題是它會使發佈速度變慢。但更重要的是,查看已更改文件的列表是最後一次檢查,只是您要發佈的內容。我們希望有多種方式來確保我們不犯錯誤。 – Myrddin81

回答

3

當源文件上的時間戳比已經縮小的文件上的時間戳更新時,應該只再次縮小文件。如果你這樣做,rsync將工作得很好,只傳輸更改的文件。

如果使用像Apache Ant或Phing這樣的構建軟件,應該很容易實現。他們專門測試了時間戳變化。

+0

當我從SVN獲得一個新版本進入測試環境時,所有文件都沒有縮小。這意味着我需要縮小每個文件,無論它是否在這個新版本中進行了更改,導致所有時間戳都被更新。 – Myrddin81

+0

我希望如果內容沒有改變,rsync中會有一些解決方案導致不更新文件。或者,也許我應該在SVN中創建一個單獨的發行版本,並將其縮小。或者,縮小隻是應該通過Apache實時完成的事情?我只是不知道什麼是最佳做法 – Myrddin81

+0

我認爲rsync可以檢測文件更改,但可能只有當您使用rsync守護進程而不是當您使用純SSH時。 Rsync可以執行滾動校驗和以最小化流量。 –

相關問題