我正在编写一个程序,该程序将使用自己的二进制格式来存储数据。
我想让某种形式的版本控制成为可能,至少两个不同的人应该能够对文件进行更改,然后合并这些更改。
由于 git 似乎是一个非常常见且非常强大的版本控制系统,所以我想知道是否可以使用它。我只有 git 的基本知识(pull add commit push),但我知道它有更高级的功能。我想了解我是否可以实现一些基本功能并免费获得所有高级功能。
所以用例是每个项目都由一个单独的二进制文件组成,而 git 必须能够使用它。
我一直在寻找并且明白我必须编写一个自定义合并工具?我的理解正确吗?
我也知道三路合并是由 diff3 程序完成的,或者至少 git 嵌入了一些功能。我必须编写它的自定义版本吗?甚至可以将它与git一起使用吗?是否需要重新编译git?
git 还将提交存储为更改以节省空间。它使用 diff 吗?有可能更换吗?git需要重新编译吗?
我还需要实现其他类型的功能吗?
我最初的计划是为项目使用单个文件,但每个项目都由独立的子项目组成,这些子项目将独立合并。通过将项目存储为每个子项目的不同文件,我会获得什么吗?
是否有一些关于 diff 、 diff3 和 mergetool 必须符合的接口的好的文档?这些可以用哪些语言编写?
我很困惑,因为每个人似乎都对从版本控制中消除二进制文件感兴趣,而且显然没有人想在它们上使用 git。这是个坏主意吗?我觉得以某种方式合并有意义的任何类型的数据都应该是版本控制的。