版本控制管理工具和多用户应用程序开发 | Mendix 评估指南

Skip navigation

Version Control & Multi-User Development

Mendix 如何支持多用户开发?

Mendix Studio Pro 和 Mendix Studio 将不同技能水平的多用户开发结合起来。团队成员可以根据需要选择使用 Mendix Studio 或 Mendix Studio Pro。有关更多信息,请参阅应用程序开发

项目开始时,所有团队成员都可以在版本控制存储库的主线上协同工作。Mendix Studio Pro 用户可通过版本控制存储库使用更新和提交模式与团队其他成员共享应用程序更新。当 Mendix Studio Pro 用户从版本控制存储库请求更新时,团队成员使用 Mendix Studio 所做的所有更改都将通过版本控制存储库共享。

使用 Mendix Studio 为团队协作分配专用分支,可以完全控制在 Mendix Studio 中所做的更改。

例如,当业务开发人员使用 Mendix Studio 创建一组新的页面和相关资产时,可以在支线中共享新的应用程序版本。然后,业务用户(例如,业务分析师)可以使用 Mendix Studio 查看和更改应用程序内容。完成后,可以根据 Mendix Studio Pro 中的业务开发人员的要求合并分支。这给予了开发人员对模型更改的完全控制权限。这有效地确保了团队中有经验的开发人员能够控制从分支中将哪些元素合并回来。

有关详细信息,请参见 Mendix Studio Pro 指南中的协同开发

版本控制如何在 Mendix 中发挥作用?

Mendix 支持使用基于 Subversion (SVN) 的集中式版本控制库,即 Mendix Team Server。使用 Mendix 平台构建的每个项目均配有 Team Server 版本控制系统。Team Server 采用 SVN 技术,使多个开发人员能够就同一项目进行协作,并不断将模型更改合并到版本控制库中的修订版本中。

此图显示了 Mendix 版本控制架构:

开发人员可以管理修订版本、冲突以及创建分支线,并且可以根据需要将分支线合并回主线分支。平台中的所有更改均会被记录下来,并与其他修订版本进行比较,以检测冲突情况并管理更新。用户可以通过开发人员门户以及分配的安全角色访问应用程序项目,拥有对 Team Server 中的模型的适当的访问权限。

如何交叉引用用户故事和应用程序更改提交?

Mendix 提供 Team Server 版本控制存储库、应用程序项目仪表板以及 Mendix Studio 和 Mendix Studio Pro 之间的集成开发体验。Mendix Team Server 版本存储库与应用程序项目仪表板和 Mendix Studio Pro 的集成具有以下重要优势:

  • 它为团队成员提供全开发交付周期追踪需求的集成方式。当您开始处理应用程序时,只需打开 Mendix Studio Pro 即可查看为当前冲刺准备的用户故事并开始进行操作。
  • 团队成员从 Mendix Studio Pro 向 Team Server 提交应用程序模型更改时,可以选择正在处理的用户故事。Team Server 将自动在用户故事和所做的模型更改之间创建链接,提供一种从提交到相关需求的导航方法。
  • 最终用户可以直接从应用程序的用户界面给予反馈,这种反馈可以转化为用户故事。作为开发人员,您可以直接转到反馈的元数据中提到的表单并实施请求的更改。
  • 团队成员可以开始在 Mendix Studio 和应用程序项目 Buzz 中讨论已实现的功能(例如,有关仪表板页面或微流中的业务逻辑)。

通过这些讨论,可以在 Mendix Studio Pro 中创建和实现新的用户故事。当将模型链接到用户故事时,完整的反馈周期已准备就绪,并且可以进行交叉引用。

如何用自己的 SVN 存储库替代 Mendix Team Server?

在默认的中央 Mendix Team Server 版本控制存储库旁边,您可以选择将自己的本地 SVN 存储库配置为项目的版本控制存储库。

有关设置的详细信息,请参见 Mendix Studio Pro 操作方法中的如何使用本地版本控制服务器

Mendix 如何支持分支和合并?

开发项目始终从一条开发线开始,这就是主线。这条开发线将在开发过程中起主导作用。

来自主线的部署必须包含应用程序的所有(已发布)功能。除主线外,一个项目还可以有多条支线。分支是创建自对主线或支线所做的特定提交(修订)。创建分支意味着将使用所选修订版本创建一个副本,将其用作新开发线的起始修订版本。这使开发人员可以在一条孤线中更改模型。大多数情况下,支线用于解决已发布版本的应用程序中的问题,与此同时主线开发继续进行。这使得在主线中能进行新开发,而无需发布尚未完成或未测试的功能。在创建分支并解决了问题(或创建新的大型功能)后,可以将这些更改与主线合并。

由于 Mendix 的模型驱动开发方法,合并模型比合并代码具有更高精确度。这是因为 Mendix 理解模型语义。这会减少冲突产生概率,如果确实发生了冲突,可以通过上述一致性检查机制在 Mendix Studio Pro 中对其解决。

Mendix 支持在 Mendix Team Server 版本库中创建和合并分支。除此之外,还可以使用发布标签标记特定的修订版本。这使团队可以使用行业模式,例如发布分支和功能分支。Mendix 部署管道还默认使用修订标记来标记具有特定部署管道时刻的版本修订。这可用于修订或实现版本回滚目的。

此视频展示了如何在 Mendix Studio Pro 中管理支线:

此视频介绍了如何合并更改:

哪些版本库 API 可用于自定义版本集成?

由于 Mendix 版本控制功能通过 Team Server 存储库中的 API 进行公开,其他平台服务或外部应用程序均可以对其调用。例如,对应用程序项目的 Team Server 版本控制存储库 API 获得最新的提交命令会使该项目返回到工件最新版本。

Mendix 如何支持版本对比?

Mendix Studio Pro 支持应用程序模型内置对比。这意味着当开发人员从版本库中检索所有应用程序文档(如页面、微流和集成)的更改时,将同时比较两个版本。Mendix Studio Pro 会检查是否有更改冲突,然后自动合并两个版本。在再次将最新版本提交到版本库之前,始终可以检查更改结果。开发人员对该过程具有完全控制权限。

当更改造成冲突时(例如,您更改了被其他开发人员删除的页面),Mendix Studio Pro 将反馈信息:必须先解决此冲突。有关冲突解决功能的更多信息,请参见 Mendix Studio Pro 具备哪些冲突解决功能?

执行更新后,如何查看其他开发人员所做的更改?

从 Mendix Studio Pro 的 Mendix Team Server 中检索新更新时,开发人员对要接受或还原的更改具有完全控制权限。更新后,所有更改都将合并到本地模型中。当开发人员所做的更改与 Mendix Team Server 的更新之间存在合并冲突时,开发人员将收到有关所有合并冲突的概况信息。此信息可用于确定是使用本地更改还是使用来自 Team Server 的更改。

开发人员在任何时候都可以控制接受哪些更改和合并冲突。在将最终版本再次提交到 Team Server 之前,可以将更改还原为原始版本。

Mendix Studio Pro 具备哪些冲突解决功能?

Mendix Studio Pro 通过显示文档的两个版本之间的详细差异信息帮助解决冲突问题(例如,当您编辑页面上的列表时,团队中的其他人却删除了该页面列表)。当文档被标记为存在冲突时,您可以在 Mendix Studio Pro 中看到冲突原因。根据此详细信息,您可以通过选择文档的“我的版本”或“他人版本”来解决冲突问题。

Mendix Studio Pro 除处理文档冲突外问题外,还可应对项目级别冲突问题。您可以通过选择“我的版本”或删除涉及的文档或文件夹来解决项目冲突问题。

以下是两个例子:

  • 一个开发人员删除了一个文档,而另一个开发人员在该文档中进行了更改
  • 两位开发人员都移动了文档,但移动到了项目树中的不同位置

如果整个文件夹(或模块)被一个开发人员删除,而另一个开发人员对该文件夹中的文档做了更改,则该文件夹会在本地还原,标记为冲突。这样您就知道这份文档原本已被删除,但被还原以显示已更改文档的上下文。

如何解决 Java 类、小组件和图片等外部文件中的冲突?

Mendix Studio 和 Mendix Studio Pro 默认会对外部文件(如 Java 类)执行差异比较。当存在新版本或文件被删除时,会由 Mendix Studio Pro 本身直接处理。

针对外部文件其他比较或冲突解决问题,可以使用外部 SVN 工具(例如 Tortoise SVN)。