Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3758788
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T10:12:58+00:00 2026-05-19T10:12:58+00:00

I need to release some software quite frequently, and the software is contained as

  • 0

I need to release some software quite frequently, and the software is contained as a VMWare disk file, i.e., .vmdk file.
What I want is some kind of binary diff and patch utility to make the delta generated as small as possible.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T10:12:58+00:00Added an answer on May 19, 2026 at 10:12 am

    Let me start off with tried-and-true approaches, then point out some more recent approaches.

    approaches that I have seen work with binary files

    A long time ago, people expanded the old and the new versions of a binary file into temporary “text” files (every byte expanded to 3 bytes: 2 hex digits and a newline).
    Then run these two “text” files through an old version of “diff” (that definitely couldn’t handle binary files) to make a patch file.
    Then we transmitted that “text” patch file over communication lines that were not yet 8-bit-clean.
    On the receive end, one expanded the old binary file into a temporary text version, then patched that old text file, and then compressed the new text file back into a binary file (compressing each pair of hex digits into one byte, and throwing away the newlines and any carriage returns that might have crept in).

    More recently, I have been using rsync (or some utility built on top of it such as Unison).
    It handles arbitrary binary files just fine.
    I generally do a live update, with Unison running on my local machine and rsync running on the file server, talking back and forth to each other.

    No matter how a patch file is generated, you can use any data compression utility to compress that file.

    approaches that, as far as I know, ought to work with binary files

    StackOverflow: “how to crate a PATCH file for the binary difference output file”
    suggests using bsdiff.

    Another StackOverflow question implies that “vimdiff” seems to handle arbitrary bytes adequately.

    StackOverflow: “Useful Binary Diff Tool” mentions a few other binary difference tools.

    I hear that some tools based on rsync — “rdiff” and “rdiff-backup” and “duplicity” — allow you create a patch file.
    Then a person who receives that patch file can use it to update their old binary file to a new binary file.

    The Wikipedia claims that recent versions of the standard “diff” and “patch” utilities support binary files.
    Have you tried that?

    cutting-edge research in executable file compression

    If you are interested in cutting-edge research on making the delta file as small as possible when updating executable files, you’ll want to check out
    “How Courgette works”
    by Stephen Adams 2009 at The Chromium Projects.

    Among other things, the computer that receives the patch “disassembles” the old application, converting all absolute addresses and offsets into symbols; then patches the disassembled code; then “reassembles” the patched code into the new version of the application.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

My program need to occupy some resources. I want it to release those resources
I need to release some resources in my web application (Tomcat 7). I try
I need to use some version system and make a automated release . Can
Do I need to release a Core Foundation objects to clear up memory? And
Do I need to release a CGMutablePathRef when I'm done with it? If so,
I was wondering if I need to release a copied NSObject? For example, I
In the documentation I have read that I don't need to release the NSOperation
I need help getting my java program ready for release. I have a program
Do I need to register new extension types with Apple before I release an
Possible Duplicate: Do I need to disable NSLog before release Application? I wonder if

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.