gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu-arch-users] [BUG] binary files


From: Tom Lord
Subject: [Gnu-arch-users] [BUG] binary files
Date: Tue, 15 Jun 2004 16:51:32 -0700 (PDT)

    > From: Matthieu Moy <address@hidden>

    > There's something I don't understand. No one would reasonably propose
    > a revision control system storing full copies for source ASCII files
    > today. You could *off course* store a full copy for source files too.
    > You would have merging algorithms, usually more effective than just
    > storing the patch in the archive. That is clearly the *wrong*
    > solution. How is that different from binary files?

Because a text diff is useful even if you don't have a copy of either
the ORIG or MOD that was used to create it.   A binary diff isn't.

The situation of not having the ORIG or MOD is common in arch and
coping with it is one of the primary things that arch _does_ that make
it a revision control system.

What would you think of something like the following:

1. The archive format could be expanded so that revisions with
   changesets could optionally also contain "exact changesets".

   A revision might have:

        patch-5.patch.tar.gz:  the ordinary changeset with
                               binary full-texts

        patch-5.exact.tar.gz: the same changeset but xdelta
                              bniary diffs, etc.


2. The builder can use .exact changesets if they are present.
   Replay and update can gain an option to use .exact changesets.


3. commit should have an option to store only a .exact changeset

   If a revision lacks a .patch and has only .exact, commands that
   need .patch should signal an error and treat it as an unreadable
   revision.


4. a new command, `tla fill-in-exact REVISION' should have two
   options:

        --exact (the default)
          Add a .exact changeset to a revision that already
          has a .patch changeset if the .exact changeset would
          be smaller.

        --full
          Add a .patch changeset to a revision that already
          has a .exact changeset if the revision 
          lacks a .patch changeset.

5. push-mirror should have an option to not include .patch 
   changesets from revisions with .exact ones, and the opposite
   option, and an option to go back and get the missing ones.


That should solve everyone's issues with binary files.   People over
small pipes can commit .exact and hopefully usually read .exact
into their local mirrors.   Anyone server side and clients on the
opposite side of the server can fill in missing .patch files
themselves.

-t






reply via email to

[Prev in Thread] Current Thread [Next in Thread]