2011-05-24 39 views
1

我目前正在研究一個項目,該項目是在mercurial控制下,並且我希望在更新時得到一個鉤子以編輯.htaccess銼刀以避免將APPLICATION_ENV更改爲適合「模式「應用程序應該運行/加載配置/連接到數據庫。在mercurial(hg)更新時添加一個鉤子

我的倉庫結構變爲如下:

Main dev repo (ENV : development) 
    +-- Stable repo (Production version) (ENV : production) 
    +-- Local dev repo (working version) (ENV : development) 
     +-- Prototype repo (prototyping repo) (ENV : prototype) 

.htaccess我想已編輯的部分是下面的(第一個文件的行):

# Application var 
SetEnv APPLICATION_ENV development 

我不介意運行一個python腳本(或任何其他語言)我正在尋找到右鉤投入.hg\hgrc文件

回答

1

這不是這是正確的,因爲這會改變實際的文件。你做的下一個提交實際上會將這個改變提交到你的倉庫。

相反,推薦的方法是做到以下幾點:

  1. 做一個模板文件,並承諾,爲您的存儲庫,即。 .htaccess.template
  2. 添加實際的文件,.htaccess.hgignore文件,使水銀避免
  3. 本地,使從模板文件到實際文件副本,然後編輯該

這確保了變化到實際的文件,無論它們是什麼,都不會被提交到你的倉庫。

一些配置系統還支持條件具備,這樣就可以像if extra config file X exists, load X as well,你會那麼做的,而不是以下:

  1. 提交的實際文件到存儲庫,但要裸機,包含默認值
  2. 結束文件有這樣一個包括語句
  3. 添加你包括對.hgignore文件的文件名,這樣你就不會犯這樣的文件到存儲庫

這將確保任何人都可以添加或覆蓋默認配置,方法是添加他們自己版本的將包含的文件。

+0

我的朋友,超級聰明,非常感謝 – 2011-05-26 20:40:29