将Draw.io(diagrams.net)文件上的更改与Git合并



Context:在我的公司,我们用多页Draw.io图记录我们的体系结构。这些图表包含在静态生成的文档网站中。这很有效,尤其是因为我们可以链接图表和网站内容。

问题:现在文档已经增长,我们有时会让几个开发人员在不同的Pull请求中修改同一个Draw.io图。Draw.io XML格式不太擅长合并。。。所以我们不得不下定决心";"软锁定";图表(具有良好的旧通信和.OWNERS文件),以避免2个PR同时修改图表。

我没有找到任何关于合并插件的引用。Draw.io桌面应用程序和网络编辑器的最新版本允许协作编辑,但我没有找到一种方法来编写合并工具。有什么想法可以继续吗?你对处理这个问题的最佳方式有什么建议吗?

根据Draw.io XML文件的格式?,CCD_ 1文件类型可以包含原始XMLXML压缩数据。

这也得到了官方文档的支持:

保存关系图的默认格式不久前已从原始XML更改为使用标准deflate压缩的XML。这主要是因为当谷歌的服务器遇到困难时,压缩文件更有可能写入。也就是说,原始XML可能有助于了解图是如何构建的。

https://drawio-app.com/extracting-the-xml-from-mxfiles/

您应该能够通过设置<mxfile compressed="false" ...>来禁用XML压缩。

因此,一种方法可能是:

  • 仅处理未压缩的.drawioxml文件
  • 源代码管理/dif/将这些文件合并为可读文本
  • 在构建静态文档站点时添加svn/png转换过程

(我只测试了其中的一部分,让我知道它是否有效。)