2010-05-25 88 views
0

我已經編寫了一個簡單的框架(實際上是庫的集合)和一些基於該框架的應用程序。這些框架和應用程序都有自己的mercurial倉庫。當我更新框架庫時,我將所有框架文件逐個複製到應用程序文件夾。這個工作流程引起了一些令人頭痛的問題,例如我不知道我上次更新了應用程序中的框架以及它是哪個版本。維護基於該框架的框架和應用程序

我有兩個關於更好的工作流程的想法,並想知道您的意見。

  • 構建工具可以更新框架文件夾中的文本文件中的版本文本,並將其導出到應用程序文件夾。

  • 我可以使用應用程序庫的子庫(我不知道該怎麼做)

謝謝!

注:我的代碼庫是PHP

+0

你看過mercurial的[subrepos](http://mercurial.selenic.com/wiki/subrepos)功能嗎? – Santa 2010-05-26 06:23:01

回答

0

聽起來像是你需要「versionize」你的框架更好。如果您正在與框架同時開發應用程序,尤其是在開發多個應用程序的情況下,那麼您有點頭痛。

你應該做的是限制你的應用程序只使用你的框架的特定版本。當你想在你的框架中實現一個新功能時,你可以將它添加到新版本中。之後,您可以決定要升級到新版本的應用程序,並將其作爲一個完全獨立的過程來完成。

不管你做什麼,除非你要完全升級到下一個版本,否則不要修改現有框架實現的核心框架代碼。另外,確保每個新版本都基於最新版本 - 您不希望具有多個不同功能的開發版本,因爲您的代碼庫(和維護要求)將以指數級增長!

編輯:再次讀你的問題,我覺得我也應該提到,自動化任何升級過程不是一個好主意。在一個存儲庫中升級您的框架中繼,然後如果需要,可以手動升級到應用程序存儲庫中的新版本。但只有當您需要當前版本中不可用的功能或優化時才適用。

+0

此外,請確保在每個新版本中更改*更改*。這將使升級後的調試成爲簡單的事情,即查看日誌並檢查應用程序中是否會受到更改影響的區域。 – Daniel 2010-05-25 08:28:21