使用git进行数据版本控制:为特定文件自定义diff



因此,我想研究git在某些二进制或文本树数据结构的版本跟踪中的适用性。问题是,我希望diff逻辑是完全自定义的,为数据结构模式量身定制。

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

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } }

我应用了以下更改:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } }

所以我的diff会很聪明地发现只有项目1发生了变化。默认情况下diff,如果其他人对密钥a,item[0]进行了更改,那么这将产生需要手动合并的冲突。自定义差异旨在为特定的文件类型和内容定制diff逻辑。

二进制文件可能也会有一些稍微不同的地方。

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

  • 当前git中支持此自定义的方法
  • git开发的项目或分支来支持这种定制
  • 其他一些更好的工具

谢谢!

编辑我发现了这篇文章,我认为这篇文章给了我很大的疑问。此外,这可能是一个迹象,表明到目前为止,这个问题还没有很好的解决方案。

您可以为Word文档等二进制文件("Diffing binary files"部分)创建自定义diff视图。但这只对查看差异有用,而不适用于合并

我不知道有什么能帮你的。

最新更新