版本控制和多用户开发
如何 Mendix 支持多用户开发吗?
Mendix Studio Pro 结合了不同技能水平的多用户开发。更多信息可参见 移动应用开发.
在项目开始时,所有团队成员可以在版本控制存储库的主线上共同工作。 Mendix Studio Pro 用户可以与团队其他成员共享应用程序更新 使用更新和提交模式 通过版本控制存储库。
版本控制如何工作 Mendix?
Mendix 支持使用基于 Git 的集中版本控制存储库,这是 Mendix 团队服务器. 使用 Mendix 平台附带 Team Server 版本控制系统。Team Server 使用 Git 技术,允许多个开发人员在同一个项目上工作,不断将模型更改合并到版本控制存储库中保存的修订版本中。对于基于 Mendix 9 及以下, Mendix 还支持基于 Subversion(SVN)的存储库。
该图显示了 Mendix 版本控制架构:
开发人员可以管理修订和冲突,以及创建分支线,这些分支线可以根据需要合并回主线分支。平台中的每个更改都会被记录下来并与其他修订进行比较,以检测冲突并管理更新。用户可以通过 Mendix 门户网站 并分配安全角色,从而授予他们对团队服务器中保存的模型的适当访问权限。
如何交叉引用用户故事和应用程序变更提交?
Mendix 提供团队服务器版本控制存储库、应用程序项目仪表板和 Mendix Studio Pro。集成 Mendix 包含应用程序项目仪表板和 Mendix Studio Pro具有以下显著的优点:
- 它为团队成员提供了 跟踪需求的综合方法 在整个开发和交付周期中。当你开始开发你的应用程序时,你只需打开 Mendix Studio Pro 查看当前 Sprint 计划的用户故事并开始处理它们。
- 当团队成员从内部向团队服务器提交应用模型变更时 Mendix Studio Pro,他们可以 选择他们一直在研究的用户故事。团队服务器将自动在用户故事和所做的模型更改之间创建链接,从而提供从提交导航到相关需求的方法。
- 最终用户可以提供 直接来自应用程序用户界面的反馈,并且此反馈可以转化为用户故事。作为开发人员,您可以直接转到反馈元数据中提到的表单并实施所请求的更改。
- 团队成员可以开始 讨论 在应用程序中讨论已实现的功能(例如,在仪表板页面或微流程中的业务逻辑上)。通过这些讨论,可以创建新的用户故事并实现 Mendix Studio Pro. 当将模型提交链接到用户故事时,完整的反馈周期已准备就绪并可交叉引用。
如何使用自己的存储库而不是 Mendix 团队服务器?
默认中央旁边 Mendix 团队服务器版本控制存储库,您可以选择配置自己的本地 Git 存储库作为应用程序的版本控制存储库。对于 Mendix 8 和 9,我们还支持本地 SVN 存储库。
有关设置的详细信息,请参阅 使用 Git 本地版本控制服务器 ,在 Mendix Studio Pro 指南.
如何 Mendix 支持分支和合并吗?
开发项目总是从一条开发线开始,这条开发线被称为主线。这是开发过程中的主导开发线。
来自主线的部署必须包含应用程序的所有(已发布的)功能。除了主线之外,项目还可以有多条分支线。分支是从到主线或分支线的特定提交(修订)创建的。创建分支意味着复制选定的修订,该修订将用作新开发线的起始修订。这使开发人员能够在隔离的线路中更改模型。在大多数情况下,分支线用于解决应用程序已发布版本中的问题,同时在主线中继续进行开发。这允许在主线中进行新的开发,而无需发布尚未完成或测试的功能。创建分支并解决问题(或创建新的大型功能)后,可以将这些更改与主线合并。
由于 Mendix的模型驱动开发方法,合并模型的准确度比合并代码更高。这是因为 Mendix 理解模型的语义。这样可以减少冲突,如果发生冲突,也可以通过 Mendix Studio Pro 通过上面描述的一致性检查机制。
Mendix 支持创建和合并分支 Mendix Team Server 版本控制存储库。除此之外,还可以使用发布标签标记特定修订。这允许团队使用行业模式,例如发布分支和功能分支。默认情况下, Mendix 部署管道还使用修订标记来标记具有特定部署管道时刻的版本修订。这可用于审计和版本回滚目的。
哪些版本存储库 API 可用于自定义版本控制集成?
- Mendix 版本控制功能通过 团队服务器存储库中的 API 以便其他平台服务或外部应用程序可以调用它。例如, 获取最新提交 调用应用程序项目的团队服务器版本控制存储库 API 将返回项目工件的最新修订版。
如何在执行更新后查看其他开发人员所做的更改?
从 Mendix 团队服务器 Mendix Studio Pro 中,开发人员可以完全控制接受或恢复哪些更改。更新后,所有更改都会合并到本地模型中。当开发人员所做的更改与来自更新的更新之间存在合并冲突时 Mendix 团队服务器,开发人员会收到所有合并冲突的概览。此信息可用于确定是否应使用本地更改或来自团队服务器的更改。
开发人员始终可以控制接受哪些更改和合并冲突。在将最终版本再次提交给团队服务器之前,可以将更改还原为原始版本。
如何 Mendix 支持版本差异和冲突解决吗?
Mendix Studio Pro 在应用程序模型上内置了差异支持。这意味着当开发人员从版本存储库中检索所有应用程序文档(如页面、微流和集成)的更改时,会比较两个版本。 Mendix Studio Pro 检查是否存在冲突的更改,然后自动合并两个版本。在将最新版本再次提交到版本库之前,始终可以查看结果更改。开发人员可以完全控制该过程。
冲突解决能力有哪些 Mendix 工作室专业版?
当更改导致冲突时(例如,您更改了已被其他开发人员删除的页面), Mendix Studio Pro 将提供反馈,必须首先解决此冲突。
Mendix Studio Pro 通过显示有关文档两个版本之间的差异的详细信息来提供冲突解决(例如,当您编辑页面上的列表时,团队中的其他人从该页面删除了该列表)。当文档被标记为冲突时,您可以查看冲突的详细原因并使用细粒度的版本解决机制。您不必在整个文档之间进行选择。相反,您可以在文档内的各个元素级别解决冲突(例如小部件、实体、属性或微流操作)。双方的所有非冲突更改都会自动被接受。有关如何使用冲突解决的更多信息,请参阅 具有细粒度冲突解决功能的新型合并算法 ,在 Studio Pro 指南.
Mendix Studio Pro 还可以在应用程序级别处理冲突。您可以通过选择“我的版本”或删除相关文档或文件夹来解决应用程序冲突。
这是两个例子:
- 一名开发人员删除了文档,而另一名开发人员对该文档进行了更改
- 两位开发人员都移动文档,但他们将其移动到树中的不同位置
如果删除了整个文件夹(或模块),而另一位开发人员更改了该文件夹内的文档,则该文件夹将在本地恢复,并标记为冲突。这样,您就知道原本打算删除该文件夹,但后来恢复了该文件夹以显示更改文档的上下文。
如何解决 Java 类、小部件和图像等外部文件中的冲突?
默认情况下, Mendix Studio Pro 对 Java 类等外部文件执行差异比较。当有新版本或文件被删除时,这将直接由 Mendix Studio Pro 本身。
为了对外部文件进行额外的差异或冲突解决,可以使用 Git 和 SVN 的外部可视化和命令行工具。