2011-08-09 90 views
0

我對mercurial很新,所以這可能聽起來很愚蠢。
我正在本地開發一個PHP應用程序,並將更改推送到遠程Linux服務器。我有一個hgweb.wsgi腳本發佈可通過url(hg.example.com/repository)訪問的存儲庫。
現在我想知道什麼是自動部署應用程序以查看它在與存儲庫相同的服務器上的操作的最佳方式?很顯然,我不能只是去hg.example.com/repository因爲它只是顯示了存儲庫,而不是應用程序的Web界面..水銀部署

回答

1

你混淆了這不一定與兩件事情:

  • 版本庫的URL路徑的一部分,你的服務器上的實際存儲庫的
  • 的路徑。

爲了獲得更好的圖像,請考慮我們使用SSH(而不是HTTP)來訪問存儲庫。這意味着我們可能在路徑中的服務器文件系統中指定了repo的完整路徑,例如,以類似的設置與我的服務器同步,我推送到ssh://example.com//var/www/wsgi/example.com(我有一個WSGI應用程序,而不是PHP,但這是現在不重要)。該應用程序本身在http://example.com/處可用,即,如果/var/www/wsgi/example.com爲站點根目錄。

現在,沒有什麼可以阻止我使用hgweb在hg.example.com子域中設置對此回購的HTTP訪問權限,因此回購推送路徑爲http://hg.example.com/example.com

這樣:

  • 我推到http://hg.example.com/example.com(回購在此URL pulished)
  • 回購位於下/var/www/wsgi/example.com(服務器文件系統路徑)
  • 該目錄在某種程度上成立被認爲是由Web服務器
  • 站點根目錄站點根= http://example.com/

P.S.不要忘記changegroup hook Ton提到。

1

有你需要做兩件事情:

  1. 添加一個可以服務於PHP頁面的網絡服務器(如apache)並讓它服務於存儲庫的根目錄(如始終確保它已保存)
  2. 爲變更組掛鉤添加一個掛鉤到mercurial服務器。這個鉤子可以是這樣簡單的: update.changegroup = hg up

這將更新存儲庫的工作文件夾與最新版本。