解决提交冲突 | Mendix

跳到主要内容

解决提交冲突

几乎在每种情况下,都会有多名开发人员共同完成一个项目。虽然让多人参与很有帮助,但这确实增加了创建项目冲突版本的可能性。但这是开发人员几十年来都知道的事情。

在我最近的一个项目中,团队被迫花一整天时间专注于一个页面。这导致了许多冲突,只会进一步拖慢我们的进度,并在团队内部造成挫败感。

我们最终只开始在项目的一个版本上工作以避免这些问题!有时这些问题无法避免(例如团队对单个页面的审查),你不得不处理它们。

Mendix“ 使工作更智能 平台可以轻松跟踪版本并避免冲突。 Mendix 团队服务器使用 Subversion (SVN) 来管理项目版本。团队服务器存储项目源代码并为团队提供跟踪变更的方法。

当发生更改时,团队服务器可以智能地更新和控制整个项目的最新版本。当两个团队成员更改同一个页面、微流或域模型时,可能会导致冲突。

在这篇文章中,我将介绍冲突是如何发生的以及如何解决它们。

冲突如何产生

假设有两个团队成员,Ryan 和 Lisa。由于团队服务器有源代码,因此项目有三个副本。一开始,它们都是等效的:

项目副本-1

Ryan 进行了更改(A 变为 A'),然后将其提交回团队服务器,将团队服务器版本更新为 A'。

项目副本-2

然后丽莎做出了不同的改变(A 变成 A'')。

项目副本-3

在 Lisa 将她的项目提交回团队服务器之前,她必须将项目更新到最新版本。更新完成后,Lisa 会收到冲突通知。

冲突通知

 

既然有冲突,让我们研究一下如何解决它。

解决冲突

在我们的示例中,Lisa 必须先解决冲突,才能提交项目。首先,她必须找到冲突 - 您可以通过更改停靠栏找到冲突(如通知中所述)。

换乘码头

双击该消息可查看哪些组件存在冲突。再次双击可查看有关冲突的更多具体详细信息。

更改-dock2

这里我们看到两列:“他们的”和“我的”。 “我的”指的是您刚刚所做的更改(在我们的示例中,“我的”指的是 Lisa 的更改)。“他们的”指的是另一位团队成员(Ryan)所做的更改。我们的冲突相当微不足道——微流中开始事件的位置发生了变化。我们可以看到相对中间点最初是 -100;200 (A),Ryan 将其更改为 -220;200 (A'),Lisa 将其更改为 -95;195 (A'')。

有两种方法可以解决此冲突。要执行任一操作,请在更改停靠栏中右键单击冲突以获取以下菜单:

解决冲突

这里我们可以看到两个选项——“使用我的解决冲突”和“使用他们的解决冲突”。如果我们选择“使用我的解决冲突”,那么在提交此版本时,Ryan 所做的更改(A')将被忽略。如果我们选择“使用他们的解决冲突”,那么 Lisa 所做的更改(A'')将被删除,Lisa 的文档将与 Ryan 的 A' 相同。

这些操作无法撤消,因此谨慎选择至关重要。如果不确定使用哪个版本,请与您的团队成员沟通。他们将能够帮助您决定哪个版本最适合保留。

如果我不知道该使用哪一个怎么办?

如果 Lisa 不知道 Ryan 想要做什么怎么办?或者也许 Lisa 需要 Ryan 的一些更改,但也需要她所做的更改?提供的两个解决方案可能不够好。

如果冲突项不是域模型,则可以复制它。如果文档可以复制,请创建副本并将“_Conflict”附加到末尾。然后可以使用“使用他们的解决冲突”选项修复冲突。现在 Lisa 有 A' 和 A'' 的副本!然后可以并排查看这两个文件,Lisa 可以决定她想要使用哪些部分。

选择你的语言