二进制文件的版本控制

时间:2016-01-28 19:28:19

标签: git diff binary-data mergetool diff3

我正在编写一个程序,它将使用自己的二进制格式来存储数据。

我希望能够使用某种形式的版本控制,至少两个不同的人应该能够对文件进行更改,并且在合并之后这会发生变化。

由于git似乎是一个非常常见且非常强大的版本控制系统,我想知道是否可以使用它。我只有git的基本知识(pull add commit push),但我知道它有更高级的功能。我想了解我是否可以实现一些基本功能并免费获得所有高级功能。

所以用例是每个项目都包含一个唯一的二进制文件,git必须能够使用它。

我一直在搜索并明白我必须编写自定义合并工具?我的理解是否正确?

我也明白,三方合并是由diff3程序完成的,或者至少git已经嵌入了一些功能。我必须写一个自定义版本吗?甚至可以将它与git一起使用吗?是否有必要重新编译git?

git还将提交存储为更改以节省空间。它是否使用差异?有可能取代它吗? git需要重新编译吗? 我还需要实现其他任何功能吗? 我最初的计划是为项目使用单个文件,但每个项目都由独立的子项目组成,这些子项目将独立合并。通过将项目存储为每个子项目的不同文件,我可以获得任何收益吗?

是否有任何关于diff,diff3和mergetool必须符合的接口的文档?这些语言可以用哪种语言写成?

我很困惑,因为每个人似乎都对从版本控制中删除二进制文件感兴趣,显然没有人想在它们上使用git。这是个坏主意吗?我觉得任何类型的数据在某种程度上都是合理的,应该是版本控制的。

1 个答案:

答案 0 :(得分:0)

  

所以用例是每个项目都包含一个唯一的二进制文件,git必须能够使用它。

有第三方工具可以处理二进制文件。

enter image description here

  

但每个项目都由独立的子项目组成

在git中你有子模块&&用于此目的的子树

git submodule add only pick latest Commit

enter image description here

  

是否有任何关于diff,diff3和mergetool必须符合的接口的文档?

     

可以用哪种语言写出来?

读出来,有一个对diff2& amp; diff3算法
What is the diff version git use? diff2 or diff3?