首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >源代码管理分支需求

源代码管理分支需求
EN

Stack Overflow用户
提问于 2010-05-23 23:16:21
回答 2查看 140关注 0票数 1

我们正在开发医院信息系统软件。该项目将针对不同的医院,并包含不同的用例。但是很多部分都是一样的。因此,我们将使用源代码管理的分支机制。如果我们在一家医院发现了一个bug,我们怎么知道其他分支机构有没有同样的bug。

IMAGE http://img85.imageshack.us/img85/5074/version.png

我们附上的图片中的数字显示了每个医院的软件。

你对这个问题有解决方案吗?

哪种源码控制(SVN,Git,Hg)适合解决这个问题?

谢谢。!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-24 17:06:28

好吧,这不是一个真正的VCS问题,这是首要的和架构的问题--你如何构建和构建你的应用程序,这样你就可以根据需要向每家医院交付特定的用例,同时能够按照你的建议修复常见代码中的bug。

我认为可以肯定地说,如果你遵循你的图像中建议的模型,你将无法持续有效地做到这一点。您最终将得到许多不同的、离散的应用程序,这些应用程序必须单独维护,即使它们有时来自一组公共代码。

很难做出更好的概括,但我会这样想:

首先,您需要一个核心应用程序(或一组应用程序或一组应用程序库),这些应用程序将构成任何已交付系统的基础,从而形成一组单独维护的代码(尽管此核心本身可能包括外部库)。

然后,您可以为您的自定义应用程序(每个医院实例)提供多个选项。您可以通过以下方式定义可用的功能:

  • 的一个极端是通过配置-拥有一个包含所有代码的应用程序,并在每个实例的基础上有效地打开和关闭东西。另一个极端是每个医院都有一个应用程序,该应用程序基本上包含customisation.

的核心代码

然而,可能的情况是,尽管每家医院的用例总数不同,但单个用例在许多实例中是通用的,因此您需要瞄准模块化系统,即从公共核心开始,可以通过组合以及任何其他方式进行扩展和配置的系统。

这意味着您可能想要广泛使用控制反转和依赖注入,以便在通用框架中提供灵活性。您希望查看可扩展性框架(我使用.NET,因此我将关注托管可扩展性框架- MEF),这些框架允许您在运行时而不是在编译时“组装”应用程序。

您还需要注意如何部署-特别是如何更新-您的应用程序,在这一点上您是对的,您将需要拥有正确的版本控制和正确的构建环境。

一旦你知道如何构建你的应用程序,你就可以看看你的版本控制系统-- @VonC说的关键特性是能够将共享项目中的代码包含到多个可交付项目中。

如果是我,现在,我可能会有一个核心(它本身可能是多个项目/解决方案),然后每个医院有一个项目/解决方案,但我的目标是在每个医院的项目中尽可能少地编写代码-理想情况下,只有足够的框架来定义特定于实例的配置和UI定制

至于使用哪一种...如果你是微软的用户,那就仔细看看TFS吧,拥有一个良好的集成环境会带来相当大的生产力提升。

除此之外(在任何情况下),DVCS (Mercurial、Git、Bazaar等)在我看来,随着它们的成熟,它们似乎正在获得比更传统的系统更多的优势。我认为SVN是一个很好的工具(我使用它并且它很有效),我认为你需要一个中央存储库来进行这种开发--尤其是因为你需要一个触发你的持续集成服务器的地方--但是你可以用DVCS实现同样的事情,并且能够在不“破坏构建”的情况下进行频繁的本地、增量、提交,DVCS给你的灵活性意味着,如果你现在有选择,那么这几乎肯定是可行的方法(但你需要确保你建立了良好的实践,确保代码被提前推送到核心存储库)。

我认为,仅仅从VCS问题来看,仍然有很多问题需要解决--但在你知道如何构建你交付的解决方案之前,你不可能得到有用的细节。

票数 0
EN

Stack Overflow用户

发布于 2010-05-24 00:35:03

您提到的所有这些VCS (版本控制系统)都与“共享组件”的概念兼容,它允许您定义一个公共的共享和部署的代码库,以及每个分支中的一些专门化:

  • Subversion externals

考虑到发布管理过程的分布式方面,DVCS会更合适。

如果bug位于公共代码库中,您可以在其他分支中快速查看以下情况:

  • 他们指的是通用组件的确切版本。
  • 他们指的是与发现错误的版本相同或更早的通用组件版本(在这种情况下,他们也有错误)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2892268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档