2008-08-18 15 views
2

讓我們來開發一個Web開發環境,在這個環境中,開發人員將一個項目簽出到他們的本地機器上,對其進行處理,並檢查對開發的更改。
這些更改將在開發中進一步測試,並按照定期計劃(例如每週,每月等)進行實時移動。
是否有可能自動升級最新的標記版本(而不是最新的簽入,因爲這可能不是100%穩定),例如週一上午8點,使用腳本或內置功能的VCS?是否可以自動從任何VCS進行結賬?

回答

1

當然,但確切的產品可能依賴於您使用的VCS。

您可能想要做的是有幾個不同的分支,並隨着您的進展而遷移。例如,開發 - >穩定開發 - > Beta - >生產。然後,您可以簡單地自動更新爲您的測試人員的最新版本的Stable-Dev和Beta,並始終能夠部署一個新的Production版本。

1

你可以用cvs做的任何事情都可以通過命令行完成,我很確定svn是一樣的。只需制定出您想要的功能,並將其保存在shell腳本或命令文件中即可。

2

是的,這是可能的。這通常是由continuous integration tools提供的功能。通常他們會從版本控制中獲得最新的源代碼,構建項目,測試它(運行單元測試),並可能將其部署到(測試)服務器上。

如果您不需要執行所有這些步驟,則可以使用某些shell腳本或類似方法(即從版本控制結帳並複製到服務器上的生產文件夾)輕鬆完成相同的操作。

1

我有經驗的唯一兩個人是SVN和Mercurial。對於水銀,你指定你想讓它從(假設默認)更新,然後當你分支合併到默認,你可以讓服務器運行哪個分支:

hg update 

哪些更新你的資料庫到最新您設置的分支版本。

SVN是同一個概念,你只檢查出你想要最初哪個分支

svn co http://host/repository/branchname/ 

那麼你有你的服務器更新與一個cron作業,ALA

svn up 

在理論上雖然,任何支持分支的VCS(所有好的分支:git,mercurial,SVN等等)都應該能夠做類似的事情。

0

我懷疑許多VCSs直接提供這種能力,但它應該是非常簡單的腳本。基於日期或分支的結帳。

0

作爲後續行動,

我認爲,一個應用程序應該做的一項工作,並把它做好。通常,如果您開始將工具組合到一個產品中,它們都不會發光,而且其中大部分都會「很好」。

如果我正在做這樣的事情,我會讓自己像SVN,ANT和Subversion Ant Library(http://ant.apache.org/antlibs/svn/index.html) - 你的米勒雖然可能會有所不同。

相關問題