2010-05-25 105 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