2010-09-27 32 views
1

我必須在Web應用程序上工作。版本控制目錄已結構類似:版本控制和複雜的應用程序到處安裝文件

appname/conf 
appname/www 
appname/etc 
appname/keys 
appname/lib 
... 

然而,對於應用程序的工作,但目前必須住在系統目錄:

/etc/httpd/conf.d 
/var/www/html 
/etc/appname 
/etc/pki/tls/ 
/usr/lib/perl5/... 
... 

有一個RPM採取VC'ed碼並創建一個將代碼放入生產地的包(即/ var/www/html和其他)。有沒有安裝說明,我應該使用RPM和即興(不理想,我知道)。

在這種情況下,每個人如何編輯應用程序,維護版本控制功能(git diff等等),並快速對應用程序進行更改以運行?該應用程序是用Perl編寫的,因此不需要編譯步驟。

我想到的方法是:

  • 在VC'ed DIR工作(與代碼不立即執行,你必須有一些安裝步驟)的代碼
  • 工作最後的位置(所以代碼編輯立即工作,但你必須手動將代碼移回VC'ed目錄)
  • 編寫一個文件系統監視程序,監視VC'ed目錄的變化,並將更改後的文件安裝到它們的最後地點(也許這樣的東西存在?)
  • 其他一些明顯的方法我忘記了,我希望有人能告訴我:-)

大家如何處理這種情況?

回答

0

我會在某種測試服務器上的代碼工作,但代碼位於正確的位置。然後,版本控制將需要能夠從各自的位置獲取必要的文件,但在準備好之前您不會部署到「最終」位置(這樣基本上就是「安裝」步驟,就像您放置它的那樣)。

由於將事情變得更加明智可能不會直接成爲您的選擇,您是否有可能將系統目錄符號鏈接到VC目錄?

0

之間有一個區別:

  • 版本控制:在您管理,建立以交付(可以在你的情況下,需要在要部署的所有文件的一個tar.gz系統目錄)
  • 發佈管理:您在哪裏進行交付並將其複製/部署到其運行環境中。

某種類型的持續集成過程的(基於像Hudson調度),可以幫助您監控VC和構建/只要一個新的提交作出部署。

相關問題