问题标签 [binary-diff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
601 浏览

svn - 滥用版本控制

版本控制是否适合内容本质上是二进制数据文件的项目?我正在考虑重量为 10 giga 的包装,其中包含大量 BMP 和 TGA 文件。

颠覆可以处理这样的事情吗?是否可以生成某种二进制补丁,允许用户只下载修改过的内容。Rsync 可能是一种选择,但没有回头路。我真的很希望能够轻松地回到早期版本。

我也看了这个问题,但对答案不满意

0 投票
2 回答
4430 浏览

diff - 商业软件的二进制差异算法

我正在开发将更改的文件发送到其他计算机的应用程序。目前,即使更改很小,也会完整发送更改的文件。我正在寻找一个库(C、C++、Java),它允许我创建一个二进制差异并只发送增量和匹配的补丁来合并数据。

我正在寻找理想的 Eclipse 或 Apache 许可证下的东西。LGPL 也可以。

0 投票
3 回答
6699 浏览

java - Java的二进制差异库

关于 SO 上 Java 的文本差异库有几个问题,但没有关于二进制差异的问题。所以我来了:

我正在寻找一个二进制差异库,用 Java 实现。我找到了 javaxdeltaGNU Diff 端口,但我想知道那里是否还有其他隐藏的宝石?而且,也许有人对上述库有经验?比较会非常有帮助。

最后,知道我想区分使用Avro序列化的对象可能会有所帮助。

0 投票
6 回答
1588 浏览

java - 图像的差异/补丁

我正在编写一个项目,我需要通过网络传输一组相似的图像。为了加快速度,我考虑做大多数电影编解码器所做的事情。拥有关键帧,然后发送更改。

现在,我得到的是一组BufferedImages,因此类似于文本文件,我基本上只想区分它们并发送补丁。但是,我以前从未真正使用过图像,所以如果我这样做,那将是相当糟糕的。

那么,实现这样的事情的最佳方式是什么,或者已经有这样的事情的良好实现?

我猜想将图像存储在字节数组中并且二进制差异它们不会非常有效。

编辑:我需要流式传输这些图像。Edit2:与其说是实现的细节,不如说是:算法最有效的想法是什么。就像只使​​用 5px 块而不忽略 px,如果它的变化很小,眼睛不会注意到(我可以忍受一些质量损失)

0 投票
1 回答
1977 浏览

git - 使用 git 进行数据版本控制:特定文件的自定义差异

所以,我想研究 git 对某些二进制或文本树数据结构的版本跟踪的适用性。问题是我希望差异逻辑是完全定制的,为数据结构模式量身定制。

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

我应用以下更改:

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

二进制文件的一些稍微不同的东西也可能适用。

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

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

谢谢!

编辑我发现了这篇文章,我认为它给出了我想知道的事情的一个非常广泛的范围。这也可能是一个迹象,表明这个问题目前还没有很好的解决方案。

0 投票
3 回答
20548 浏览

git - git 二进制差异算法(增量存储)是否标准化?

Git 使用增量压缩来存储彼此相似的对象。

该算法是否已标准化并用于其他工具?是否有描述格式的文档?它与 xdelta/VCDIFF/RFC 3284 兼容吗?

0 投票
1 回答
1290 浏览

command-line-tool - 任何工作的二进制差异工具都实现了 GDIFF(通用差异格式,而不是图形文件差异)?

我在wikipedia中看到了 GDIFF(Generic Diff Format) ,我想知道是否有任何命令行工具实现了这个标准。现在我最好的是LibXDiff,但它是一个库,我需要一些额外的工作才能让它运行。

我知道当涉及到二进制差异时,VCDIFF(xdelta, etc) 和 bsdiff 会有更好的压缩率,但就我而言,我真的需要一个直截了当的压缩率。VCDIFF 复制当前窗口之前的任何内容(如果我对这篇文章的英文阅读不佳的话),并且 bsdiff 的补丁文件格式会更复杂。

更新

最后我发现带有 xdelta3 的 VCDIFF 实际上很好并且可以工作,当切换“禁用小字符串匹配”和“禁用外部解压缩”时,它有一个非常好的“printdelta”命令,可以打印非常有用的(对于我的应用程序)信息,所以我真的不需要从补丁文件中提取 VCDIFF 格式。

0 投票
1 回答
91 浏览

mercurial - 我在 mercurial 源代码中找不到 diff 二进制的代码

我正在阅读 mercurial 的源代码,但是我在 bdiff.c 和 mdiff.py 中看到的是处理文本,而不是二进制文件。但是他们说 mercurial 将所有文件都视为二进制文件。我很困惑。

0 投票
1 回答
228 浏览

actionscript-3 - 创建两个字节数组的“changeset”

我有一些二进制数据。我会随着时间的推移而改变,一些字节会在这里和那里添加,一些会改变。总体而言,大部分字节数组保持不变。

是否有任何库,最好是 Actionscript 3,从两个字节数组中生成一个“变更集”(有更好的名称吗?)。它还应该让我将变更集应用于字节数组并返回生成的新字节数组。

这有意义吗?我不确定如何最好地表述我的问题。

编辑澄清:

我想要的是只发出变化的东西,从而使“变更集”尽可能小。因此,如果 1MB 二进制文件中只有 1KB 发生了变化,那么变更集应该是一个大小约为 1KB 的字节数组。

编辑:

我认为基本上我需要一个http://www.daemonology.net/bsdiff/的 AS3 版本

0 投票
1 回答
15033 浏览

google-chrome - 如何编译 Google Courgette 工具?

Courgette (描述,来源) 是一个谷歌工具,用于有效地更新 Chrome。

它似乎是一个很棒且易于使用的工具,但我无法编译它。我已经尝试过 VS2010、GYP 并直接使用 C++ 编译器,但都失败了。

有人对如何编译 Courgette 有任何建议吗?