3

我在這裏尋找關於如何管理多個版本的projet的一些提示和技巧。項目管理/多個版本

目前我有一個應用程序的開發版本,其中包括一些改進和新的功能。同時我必須做一些錯誤解決。很容易修復新功能沒有觸及的文件上的錯誤,但只要我觸及具有新功能的頁面即可。我需要每次評論幾行代碼。我覺得這不是最好的玩法。必須有足夠的方法來解決這個問題。

問題的另一方面是部署。我經常需要等上幾個星期才能在網站上傳新的功能。與此同時,我傾向於忘記每個已修改的文件(或對錯誤進行評論),並且可能會產生錯誤。我聽說過紅寶石粉絲的capistrano,可以幫助我嗎?我主要是PHP/asp.net開發人員。

回答

5

您所遇到的「不相容發力」的經典案例:
你不能同時修復bug上,而在同一時間同一文件的制定。

這是分支一個經典案例,這將允許同一個文件:

  • 凍結狀態最初部署(說明點爲分公司)
  • 修復了一個在一個bugfix分支
  • 將這些bug中的一些改進到當前的開發分支中
  • 在開發分支中開發新功能。

如果你不舒服與VCS(版本控制系統)的直接安裝,你至少可以複製代表你的服務器的文件樹成2個目錄(一個1.0和一個「DEV」),有效做一些「手動」修訂控制。
然後,像WinMerge的工具將幫助您跟蹤的差異,做一些合併

但真正的VCS會更有效率,並且可以作爲部署的穩定來源,由該Best version-control for a one-man web-app問題,如圖所示(以顛覆)。
該版本控制源也可以由像capistrano這樣的部署系統使用。

0

這樣做的一種方法是在您的源代碼管理軟件中創建一個分支。

+0

哼哼嗯,我想過了......在生產服務器上安裝subversion並通過提交進行部署......但對我來說聽起來有點奇怪。 – Erick 2009-04-20 06:11:37

+0

您不必在生產服務器上安裝Subversion。在開發機器上籤出一個版本,並在生產服務器上檢查ftp/ssh/scp /不管它。 – 2009-04-20 06:13:08

4

大多數版本控制系統都具有「分支」軟件的能力,因此您可以同時使用相同代碼庫的多個版本。

例如,您的「1.0」分支可能是當前的生產版本。對於新的開發,您可以創建一個「1.1」分支,該分支從1.0開始。你所有的新功能都應該在1.1版本中,任何生產bug修復都應該在1.0版本中(最終也會是1.1版本)。通常有工具可用於合併分支之間的更改(例如,將錯誤修復從1.0合併到1.1)。

這是對顛覆分支的很好的描述。

http://svnbook.red-bean.com/en/1.1/ch04.html

查看當前的版本控制系統,它處理如何分支。

0

源代碼管理系統是您的解決方案。他們中的大多數人都有辦法處理不同版本的項目,例如perforce,svn等。您可以使用Perforce中的分支創建任意數量的版本。任何版本中的任何更改都需要合併到所有更高版本中。我發現peforce合併非常舒服。每個新版本都從其早期版本的副本開始。您可以開發一些控制腳本並配置perforce,以便在更高版本中提醒以前版本的任何更改。