2008-08-07 117 views
30

我們有一個我們想要版本控制的PHP項目。現在我們有三個人正在開發一個項目的開發版本,該版本駐留在所有Eclipse IDE鏈接的外部文件夾中,因此沒有版本控制。版本控制PHP Web項目

什麼是正確的方式和版本控制這個最好的方式?

我們有一個SVN成立,但我們只是需要找到檢查的好方法,並指出,允許我們開發測試服務器上。有任何想法嗎?

回答

25

我們在類似的情況,這裏是我們落得這樣做:

  • 設立兩個分公司 - 解放和發展分支。
  • 對於開發分支,包含一個將存儲庫部署到開發服務器的post-commit掛鉤,以便測試。
  • 準備就緒後,您將更改合併到發佈分支中。我還建議在這裏部署一個post-commit鉤子。

您還可以爲每個團隊成員在其工作站上設置單獨的開發服務器。我發現它可以加快速度,儘管你還有更多的準備時間。

我們不得不使用一個單一的開發服務器,因爲我們用的是專有的CMS,跑進許可問題。所以我們的post-commit hook是一個簡單的FTP機器人。

0

你們每個人都可以在本地運行,或您自己的dev的服務器(甚至同一個用不同的端口...)。

0

一種可能的方式(有可能是更好的方法):

你們每個人都應該有項目的自己簽出的版本。

在您的計算機上的服務器的本地副本,並有測試了一整天。然後在每天(或每次)結束時,將任何準備好的測試合併到一起,然後將其簽出到開發服務器上並對其進行測試。使用Subversion進行PHP開發

2

的方法之一是過於設置爲一個存儲庫或全部三個開發,並使用這個倉庫,更象是一個同步工具,不是真正的版本控制。

你可以,

  • 做一個回購

  • 添加您的項目的整個PHP文件結構

  • 結帳這個回購協議的副本放到正確的位置你的dev的服務器上

  • 使用svn鉤子,在提交時激活

這個鉤子,將自動更新開發服務器中的內容,只要在任何代碼隊檢查任何人。

掛鉤位於:

svn_dir/repo_name /掛鉤/後提交

而且可能看起來像:

在/ usr/bin中/ SVN上/ path_to/webroot --username svn_user --password svn_pass

這樣會更新開發服務器上工作拷貝到最新的檢查中

5

這裏是我們做什麼:

  • 每個開發具有構造就像我們的集成服務器虛擬機
  • 整合服務器有空間爲主幹,每個用戶,併爲分支機構幾個插槽
  • 生產服務器
  • 鉤子是在顛覆到電子郵件時提交由

在項目的開始,用戶進行一個分支,其檢出其個人VM以及抓住數據庫的乾淨副本。他們做他們的工作,隨時做出承諾。

一旦他們在自己的個人空間完成的一切,他們登錄到集成服務器,並檢查了他們的分公司,運行測試,等等。當所有經過他們的分支合併到主幹。

Trunk被重建,一整套測試運行,如果一切都很好,它會得到批准的標記,在SVN中標記,並在晚上升級到Production。

如果在任何時候一個由別人作出承諾,我們會得到一個電子郵件,可以合併那些改變我們的各個分支。

3

Beanstalk有內置的post-commit掛鉤部署到開發,分期和生產服務器。

0

另一個可用於構建的工具是TeamCity,它可以免費獲得20個構建配置(對於大多數小公司/項目來說足夠了)。這樣,您可以運行測試以及計劃構建。

2

什麼東西分佈?你可以用Mercurial作爲例子,嘗試不同的工作流程,看看哪一個最適合你。