2010-06-11 52 views
4

我需要知道在共享服務器(hostgator)上管理團隊網絡開發的最佳方式。在共享網站上管理團隊開發

我在過去曾經在一個共享服務器上做過一些個人web開發,而且我總是通過SSH設置SVN來擁有一個非常不錯的開發工作流程(版本控制,快速提交,通過eclipse/subclipse等工作) )。不過,我也知道使用這個設置,我必須做出一些非常複雜的post-commit掛鉤來將存儲庫導出到/ public_html;並因此使存儲庫代碼可測試。

對於整個團隊來說,這似乎是一個單調乏味且容易出錯的設置。我希望能夠:

  1. 輕鬆測試存儲庫中的最新代碼。
  2. 有點容易將庫中的代碼移到生產環境中。
  3. 使用像eclipse/subclipse這樣的IDE可以輕鬆處理存儲庫。

有鑑於此,有沒有人知道一個良好的版本控制/存儲庫設置開發一個約4-5人的團隊網站?

非常感謝。

編輯:我非常有信心,我堅持與SVN。不是個人偏好,而是我的虛擬主機的限制。但是,這不像存儲庫問題那麼多(可以用SVN來管理),就像部署問題一樣。將倉庫代碼部署到測試和生產的最佳方式是什麼和如何。我的共享主機服務器上沒有像Hudson這樣的構建服務器。是的,我可以寫後提交鉤子,但它似乎有點太容易出錯,他們已經非常花哨。如果這是我能得到的最好的,那麼我將不得不管理。只是好奇,如果有人遇到了另一種選擇。

回答

5

讓開門見山

最好的方式來與任意數量的coleagues的項目工作是throught一些svn客戶端。我有tortoisesvn

你應該做的第一件事就是一個最好的經驗,你開始後,一個新的項目是建立項目庫這樣

your_project 
    trunk 
    branches 
    tags 

其中幹線represend您最新的穩定的生產代碼。目錄分支是針對項目開發人員的。每個開發人員應該有他自己的領域,當然應該有也喜歡

branches 
    r01 
    developer1 
    developer2 
    developer3 

發佈一個目錄這麼行動的過程應該是這樣的:

  • 在每個月的開頭(取決於項目)活動,建立新的版本(如從主幹領域創建)
  • 新的任務是應對出來,每一個開發人員創建自己的新分支
  • 當開發者完成他的領域,他把它合併到新版本
  • 每個開發人員後關閉了他的領域和新的發行成功完成後,管理員創建一個名爲例如「標籤/測試r01.01」

這裏代碼附帶的工具,如hudson whitch後,他發現新的考驗標籤他會自動部署新的測試。如何,何時何地取決於配置

最後當時間是正確的時候(每個測試人員都做他/她的工作)admin將最新版本合併到trunk(我們的穩定代碼),之後創建新的標籤,例如tags/r01從後備箱和哈德遜做其餘的工作(汽車部署我們的網絡的新版本)

然而,我只有在這裏表面劃痕,圍繞這個問題在烏龜svn和哈德森手冊上有很多頭腦風暴。希望這有助於

0

您可以使用類似:

http://www.assembla.com?affiliate=joedeveloper

(原諒子公司嫖娼)

它可以讓你一鍵從回購部署和給你的東西如Scrum工具和門票等。

其他低科技解決方案將簡單地製作暫存服務器public_html/git存儲庫。

通過在生產服務器上進行shell訪問,您可以在需要時提供穩定的分支。

0

與SVN你例子似乎很簡單。我想你的post-hook commit評論就像持續集成或每晚構建過程。有很多工具可以爲你做到這一點。

一個很好的討論是在這裏:Setting up Continuous Integration with SVN

至於你的隊中大將最好的源代碼控制系統,好像誰正在進入遊戲的新鮮感大多數人都寧願要麼混帳或水銀(兩者都被認爲分佈式版本控制系統)。 SVN最大的批評是分支/合併功能的困難。大多數人推動,因爲很容易分支和歸併,允許每個開發人員有他們的本地機器上的他/她自己的倉庫,並與中央存儲庫合併他們的倉庫,當他們到達特定里程碑的能力git的/反覆無常。這意味着他們沒有一半工作代碼打破身材,也沒有去周沒有源代碼控制的好處,而他們做出自己的本地機器上的一個分支非常複雜的變化..

1

我正在爲我的網站開發探索https://bespin.mozillalabs.com/的可能性。看起來很有希望。一個編輯器和一個版本控制系統。完全在線。嘗試一次,看看你是否喜歡它。

+0

如何將我的代碼從貝斯平到我的共享服務器?或者這是完全不同的東西? – 2010-06-21 19:23:00

+0

您需要在共享服務器上安裝版本控制。你也可以在服務器上安裝bespin,而不是使用mozillalabs。 – iamgopal 2010-06-22 02:23:10

2

我知道你提到的具體的顛覆,但你被困在顛覆?我發現在使用git的多人開發環境中效果會更好。合併跟蹤能力本身就是一個救星。而且每個人在本地都有完整的歷史記錄,因此可以更快地查看歷史記錄和離線開發。你在顛覆中失去了一些能力。最大的損失是子樹檢出和在子樹上執行ACL的能力。恕我直言,這些都值得放棄。一些小腳本,你也可以使用git進行半自動部署。

+0

和分層推送(開發人員=>自動化測試=>問答=>生產或其他)。 – strager 2010-06-21 15:59:49