473,386 Members | 1,812 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Binary Differencing

I posted a question a few days ago concerning file differencing and I got
some thought provoking answers. My original question dealt with identifying
file differences for storage of multiple versions of documents, some binary
some textual. I know that there are many excellent version control systems
out there (cvs, subversion, etc) but due to restrictions on the project I'm
working on we have to have a custom implementation. In order to gain what
could be some substantial savings for us on both bandwidth and file storage
we have decided to only store and transmit version differences in our system
(backend is sql server). For the most flexibility we want to go with a
binary differencing model. While searching around I found RFC 3284 "The
VCDIFF Generic Differencing and Compression Data Format" that really seemed
to fit my needs from a very high level. A little more work showed that other
version control systems (Vault) actually implemented this RFC for it's
system. Now I've started to digest the RFC in an effort to start some
prototype implementations but as is common the RFC is a fairly high level
document. Is anyone aware on any subject matter concerning implementing
binary differencing such as VCDiff, preferably some .net (or any) code
snippets. I plan to implement this in the .Net framework (C#) hence my post
to this group. Any advice or direction would be greatly welcomed. Thanks!

Josh Carlisle

Nov 16 '05 #1
2 4759
Josh Carlisle <jc*******@removeforspam.viewfusion.com> wrote:
I posted a question a few days ago concerning file differencing and I got
some thought provoking answers. My original question dealt with identifying
file differences for storage of multiple versions of documents, some binary
some textual. I know that there are many excellent version control systems
out there (cvs, subversion, etc) but due to restrictions on the project I'm
working on we have to have a custom implementation. In order to gain what
could be some substantial savings for us on both bandwidth and file storage
we have decided to only store and transmit version differences in our system
(backend is sql server). For the most flexibility we want to go with a
binary differencing model. While searching around I found RFC 3284 "The
VCDIFF Generic Differencing and Compression Data Format" that really seemed
to fit my needs from a very high level. A little more work showed that other
version control systems (Vault) actually implemented this RFC for it's
system. Now I've started to digest the RFC in an effort to start some
prototype implementations but as is common the RFC is a fairly high level
document. Is anyone aware on any subject matter concerning implementing
binary differencing such as VCDiff, preferably some .net (or any) code
snippets. I plan to implement this in the .Net framework (C#) hence my post
to this group. Any advice or direction would be greatly welcomed. Thanks!


I have a C# *decoder* for VCDiff which is freely available -
http://www.pobox.com/~skeet/csharp/miscutil

Unfortunately I don't have an encoder in C#. It's one of those things
I'd like to do some time, but don't have the time at the moment.

I found RFC 3284 to be one of the best written ones I've seen - the
implementation of a decoder only took about 4 hours.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 16 '05 #2
Thanks Jon I'll take a look at your decoder. I'm sure it will prove to be
helpfull at the very least for getting me on the right track. I don't have
much experience taking a RFC to code but it does seem to be well written.
Thanks again.

Josh

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Josh Carlisle <jc*******@removeforspam.viewfusion.com> wrote:
I posted a question a few days ago concerning file differencing and I got
some thought provoking answers. My original question dealt with
identifying
file differences for storage of multiple versions of documents, some
binary
some textual. I know that there are many excellent version control
systems
out there (cvs, subversion, etc) but due to restrictions on the project
I'm
working on we have to have a custom implementation. In order to gain what
could be some substantial savings for us on both bandwidth and file
storage
we have decided to only store and transmit version differences in our
system
(backend is sql server). For the most flexibility we want to go with a
binary differencing model. While searching around I found RFC 3284 "The
VCDIFF Generic Differencing and Compression Data Format" that really
seemed
to fit my needs from a very high level. A little more work showed that
other
version control systems (Vault) actually implemented this RFC for it's
system. Now I've started to digest the RFC in an effort to start some
prototype implementations but as is common the RFC is a fairly high level
document. Is anyone aware on any subject matter concerning implementing
binary differencing such as VCDiff, preferably some .net (or any) code
snippets. I plan to implement this in the .Net framework (C#) hence my
post
to this group. Any advice or direction would be greatly welcomed. Thanks!


I have a C# *decoder* for VCDiff which is freely available -
http://www.pobox.com/~skeet/csharp/miscutil

Unfortunately I don't have an encoder in C#. It's one of those things
I'd like to do some time, but don't have the time at the moment.

I found RFC 3284 to be one of the best written ones I've seen - the
implementation of a decoder only took about 4 hours.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too

Nov 16 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

13
by: yaipa | last post by:
What would be the common sense way of finding a binary pattern in a ..bin file, say some 200 bytes, and replacing it with an updated pattern of the same length at the same offset? Also, the...
20
by: Christian Stigen Larsen | last post by:
A signed int reserves one bit to signify whether a number is positive or negative. In light of this, a colleague asked me whether there existed an int in C++ that was -0, a zero with the negative...
3
by: Tron Thomas | last post by:
What does binary mode for an ofstream object do anyway? Despite which mode the stream uses, operator << writes numeric value as their ASCII representation. I read on the Internet that it is...
103
by: Steven T. Hatton | last post by:
§27.4.2.1.4 Type ios_base::openmode Says this about the std::ios::binary openmode flag: *binary*: perform input and output in binary mode (as opposed to text mode) And that is basically _all_ it...
2
by: Lisa Pearlson | last post by:
Hi, My php application (on Apache/Linux) needs to do the following: The PHP script receives a request from a client (binary), asking for certain records of data. My PHP script loops through...
9
by: Ching-Lung | last post by:
Hi all, I try to create a tool to check the delta (diff) of 2 binaries and create the delta binary. I use binary formatter (serialization) to create the delta binary. It works fine but the...
1
by: Josh Carlisle | last post by:
I posted a question a few days ago concerning file differencing and I got some thought provoking answers. My original question dealt with identifying file differences for storage of multiple...
3
by: John R. Delaney | last post by:
I am running in debugging mode after a clean C++ compilation under .NET 2003. In a BIG loop (controlled many levels up in the call stack), I open a file with fopen using the "a" option. Then I write...
10
by: rory | last post by:
I can't seem to append a string to the end of a binary file. I'm using the following code: fstream outFile("test.exe", ios::in | ios::out | ios::binary | ios::ate | ios::app)...
16
by: Erwin Moller | last post by:
Why is a binary file executable? Is any binary file executable? Is only binary file executable? Are all executable files binary? What is the connection between the attribute of binary and that of...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.