注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
当多个协作者在单个Slate应用上工作时,他们可能需要合并他们的更改以维护版本控制。当两个或更多用户同时开始编辑应用的同一版本并尝试保存更改时,版本控制是必要的。由于第二次保存尝试基于已被第一次保存渲染为过时的版本,应用无法正常保存而不会丢失用户的更改。为了解决这种情况,第二个用户必须从以下选项中选择:
以下部分描述了合并过程。
当同一元素被多个用户修改或删除时,会出现合并冲突。例如,如果一个用户删除了一个微件,而另一个用户修改了它,就会产生冲突。另一个冲突的例子是当两个用户都修改了同一个查询。
当原本可合并的微件ID发生冲突时,也会发生冲突,迫使用户在不同版本之间进行选择。如果应用开发者未能遵循最佳实践应用语义微件名称,而是依赖于默认微件名称,这种冲突更为常见。
如果在保存时未检测到冲突,Slate会自动合并应用JSON并显示合并应用的预览。如果您对更改感到满意,请选择接受并保存。如果需要更正,请选择进行更改以查看和编辑JSON。
当在保存时检测到合并冲突时,您将看到更改的JSON视图。在合并视图中,三个独立的窗格显示来自其他用户的更改、合并结果和您的更改。当识别到合并冲突时,Slate将不会尝试在元素内合并更改,并且默认包含其他用户的更改。
对于每个冲突:
Conflict
标签的元素导航到冲突。当所有冲突都解决并且您对JSON更改满意时,选择预览最终结果。然后您将看到合并应用的视觉预览,并可以选择保存应用。
在此示例中,用户A修改了图表中的Y值:
然后,用户B修改了同一微件中系列的颜色:
用户A保存后,用户B保存,用户B将看到以下提示:
如果用户B选择**合并...**按钮,他们将看到合并界面。在此初始视图中,显示了整个Slate应用的比较(也称为“差异”)。用户B可以使用左侧菜单选择特定元素。
导航到有冲突的元素时,仅关注这些更改。请注意,用户B的更改尚未合并;用户B必须将他们希望保留的更改复制到合并结果窗格。
在用户B将他们希望保留的更改复制到合并结果窗格后,它可能看起来像这样:
当对合并结果窗格的内容感到满意时,用户B选择标记为已解决。
当用户B解决所有冲突并选择预览最终结果时,用户B将看到合并应用的视觉预览:
请注意,合并的Slate应用包含来自两个更改的属性。