使用git进行数据版本控制:特定文件的自定义差异

lur*_*her 8 git version-control binary-diff

所以,我想调查git对某些二进制或文本树数据结构的版本跟踪的适用性.问题是我希望diff逻辑完全是自定义的,为数据结构模式量身定制.

假设有问题的文件是某个json对象,我想为json文件自定义diff,所以如果我有这样的版本A:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } }
Run Code Online (Sandbox Code Playgroud)

我应用以下更改:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } }
Run Code Online (Sandbox Code Playgroud)

所以我的差异很聪明,发现只有项目1改变了.使用默认差异,如果其他人在密钥a,item [0]中进行了更改,则会产生需要手动合并的冲突.自定义diff旨在为特定文件类型和内容自定义diff逻辑.

二进制文件略有不同可能也适用.

这个问题的目的是看看是否有:

  • 当前git中支持此自定义的方法
  • git开发的项目或分支,以支持此自定义
  • 一些其他工具更好地针对此

谢谢!

编辑我发现这篇文章,我认为这给我一个非常广泛的范围我想知道的事情.此外,这可能是一个迹象,表明目前还没有很好的解决方案.

svi*_*ick 3

您可以为二进制文件(如 Word 文档)创建自定义比较视图 (“比较二进制文件”部分)。但这仅适用于查看差异,不适用于合并

我不知道有什么可以帮助你的。