繁体   English   中英

如何将具有差异内容的 2 个文件合并为 json 对象

[英]how to merge 2 files with diff contents as json objects

在此处输入图像描述

我正在尝试将这两个文件内容合并到一个新文件中。 我已经将左右内容作为 JSON 具有行号和行内容的对象。

例如,我想 select 左侧部分并在合并后将右侧部分保留在新文件中。 由于行号不同。 我们如何从第 214 行添加左边的内容?

我想要的只是一个最终的 JSON object 捕获带有行号的合并决策。 一旦我得到合并 JSON。 我将使用任何编程语言来创建一个新文件和这些更改。

注意:合并时,我将正确的文件作为主要参考。 我将复制正确的文件并在选择时添加左侧内容。

正如Aleksey Tsalolikhin 评论的那样,您显示的是 XML,而不是 JSON(编码为文本)。 这没什么大不了的:两者都只是提供了编码树结构数据的方法。

Git 对此一无所知。 Git 的合并代码将文件视为(文本)。 没关系,因为您打算自己进行合并(使用代码或手动或其他方式)。

请注意,区分或合并树结构数据,无论其编码如何,本质上都是复杂的。 它不应该使用行号。 它可能应该查看子树是否匹配,如果匹配,则认为它们已移动,即使它们已更改深度。

如果您自己完成了合并,并且结果应该以文本编码,则将其编码为文本并将其插入到它所在的位置,并将结果作为文本文件提供给 Git。 所有git merge需要的是最终的文本文件。 合并的输入是三个文本文件——一个来自合并基础提交,第二个来自当前提交,第三个来自另一个正在合并的提交——Git 需要一个新的文本文件。

因此,将您的合并结果编码为文本,您基本上就完成了:将其写入适当的文件(或适当文件的适当部分)并告诉 Git这是合并的正确结果 换句话说,写出结果并运行git add path/to/file

注意:合并时,我将正确的文件作为主要参考。 我将复制正确的文件并在选择时添加左侧内容。

合并有三个输入。 没有“左右”:有合并基础我们的和他们的 从 base 到我们的 delta 代表了我们所做的更改。 从 base 到他们的 delta 代表他们改变了什么。 你的工作就是结合这些变化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM