繁体   English   中英

二进制文件的版本控制

[英]version control for binary files

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

我想使某种形式的版本控制成为可能,至少两个不同的人应该能够对文件进行更改,然后将这些更改合并。

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

因此,用例是每个项目都将由一个唯一的二进制文件组成,而git必须能够使用它。

我一直在搜索,并且了解我是否必须编写一个自定义的mergetool? 我的理解正确吗?

我还了解到,三向合并是通过diff3程序完成的,或者至少git嵌入了其中的某些功能。 我需要编写一个自定义版本吗? 甚至可以在git中使用它吗? 是否需要重新编译git?

git还会将提交存储为更改,以节省空间。 它使用diff吗? 可以更换吗? git需要重新编译吗?
我还需要实现其他功能吗?
我最初的计划是对该项目使用一个文件,但是每个项目都是由独立的子项目组成的,这些子项目将被独立合并。 通过将项目存储为每个子项目的不同文件,我会有所收获吗?

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

我很困惑,因为每个人似乎都对消除版本控制中的二进制文件感兴趣,而且显然没人愿意在它们上使用git。 这是一个坏主意吗? 我觉得应该以某种方式对合并进行某种意义上的任何类型的数据进行版本控制。

因此,用例是每个项目都将由一个唯一的二进制文件组成,而git必须能够使用它。

有用于处理二进制文件的第三方工具。

在此处输入图片说明


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

在git中,为此您有子模块&&子树

git子模块添加仅选择最新提交

在此处输入图片说明


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

这些语言可以用哪种语言编写?

阅读此内容,其中有对diff2和diff3算法的引用
git版本的差异版本是什么? diff2或diff3?

暂无
暂无

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

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