Mendix“ 使工作更智能 平台可以轻松跟踪版本并避免冲突。 Mendix 团队服务器使用 Subversion (SVN) 来管理项目版本。团队服务器存储项目源代码并为团队提供跟踪变更的方法。
当发生更改时,团队服务器可以智能地更新和控制整个项目的最新版本。当两个团队成员更改同一个页面、微流或域模型时,可能会导致冲突。
在这篇文章中,我将介绍冲突是如何发生的以及如何解决它们。
冲突如何产生
假设有两个团队成员,Ryan 和 Lisa。由于团队服务器有源代码,因此项目有三个副本。一开始,它们都是等效的:
Ryan 进行了更改(A 变为 A'),然后将其提交回团队服务器,将团队服务器版本更新为 A'。
然后丽莎做出了不同的改变(A 变成 A'')。
在 Lisa 将她的项目提交回团队服务器之前,她必须将项目更新到最新版本。更新完成后,Lisa 会收到冲突通知。
既然有冲突,让我们研究一下如何解决它。
解决冲突
在我们的示例中,Lisa 必须先解决冲突,才能提交项目。首先,她必须找到冲突 - 您可以通过更改停靠栏找到冲突(如通知中所述)。
双击该消息可查看哪些组件存在冲突。再次双击可查看有关冲突的更多具体详细信息。
这里我们看到两列:“他们的”和“我的”。 “我的”指的是您刚刚所做的更改(在我们的示例中,“我的”指的是 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 可以决定她想要使用哪些部分。





