我想将版本控制器用于大文件(视频文件)。我想修改文件并多次登记。如果我使用git,它将在每次我签入时存储文件内容。是否有任何工具可以存储仅修改文件的差异,以便我可以节省存储空间。(我不想存储完整的文件当我每次办理入住手续时)
我经历过git - 媒体。每次我办理登机手续时,它都会存储全部内容。 我猜git附件也会像git - media一样工作。
由于
答案 0 :(得分:2)
如果您要存储频繁更改的二进制文件(这似乎是您的情况),我建议SVN而不是Git。它只存储增量。我对Git的观察是它不能处理经常变化的大型二进制文件。 repo大小上升,你花了很多时间克隆等。尽管有packfiles,但是git存储了delta,并且给了repo。
然后再次记住,这些主要是作为源代码控制软件设计的,虽然SVN(和Git)处理二进制文件,但实际上并不是它们的用例。
答案 1 :(得分:2)
这取决于系统能够表示两个视频文件之间的差异,这反过来又取决于视频文件的存储方式。
大多数版本控制系统都能够处理二进制文件;它们处理它们的程度各不相同。有些人可能只是放弃并完整存储每个版本。
据推测,您正在使用某种压缩格式(即,不是每个帧的每个像素都是明确存储的)。如果您有一个视频X
,并且对其进行了一些小改动以生成视频Y
,则X
和Y
会有很长的相同字节序列,或压缩方案是否会扰乱一切?如果是前者,任何体面的二进制diff算法都应该能够找到(而不是存储)相同的序列;如果没有,没有这样的算法可以这样做,除非它特别了解视频格式的内部。
实际上,使用不能非常积极地压缩数据的格式可能会获得更好的结果,因此它可以为比较算法提供一些工作。 [编辑:这是我的猜测;我没有实际的数据支持它,但这似乎是一个合理的猜测。]
我知道这实际上并没有回答这个问题,但也许它可以为你或其他人提供一个起点。
答案 2 :(得分:0)
你可以简单地使用SVN,它可以开箱即用地处理二进制文件。