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

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

[Gnu-arch-users] tla-rsync-mirror


From: Andrew Suffield
Subject: [Gnu-arch-users] tla-rsync-mirror
Date: Wed, 31 Dec 2003 20:49:57 +0000
User-agent: Mutt/1.5.4i

I just polished my rsync-based alternative to archive-mirror; in the
simple case, it is a drop-in replacement for archive-mirror, except
that it ignores my-default-archive.

It performs a perfect copy; it does not understand cached revisions,
signatures, or anything similar - they will always be copied blind.

Advantages:
 - it is an order of complexity faster than archive-mirror;
   O(bandwidth) as opposed to O(bandwidth + latency)
   On my cable connection, tla-rsync-mirror is between 5 and 50 times
   faster than archive-mirror, depending on latency at the time.

 - it always makes the destination an exact copy of the source;
   archive-mirror misses changes to revisions that have already been
   copied (such as new cached revisions)

Disadvantages:
 - there is presently a small window in which the destination archive
   is in an "inconsistent" state during mirroring, which
   archive-mirror does not have. This is actually a bug; I know how to
   fix it, but it requires some new code in rsync. To the best of my
   knowledge, tla won't have any real problems with this - it will
   either ignore the revisions that have not been completely mirrored
   yet, or fail with an error, depending on what it's doing.

 - rsync access is required. This means it's more or less push-only -
   most people do not run public anonymous rsync access for their
   archives.

 - only the file and sftp access schemes are supported. ftp and http
   won't work.

 - --no-cached, --cached-tags, and resigning in passing, are not and
   will not be supported.

I commit everything to local archives and use this in my hook scripts
to push the changesets out automatically; on my system, archive-mirror
is too slow for this, but tla-rsync-mirror is adequetely fast.

Start a new mirror just like you would normally - with make-archive
--mirror. tla-rsync-mirror _ignores_ =meta-info, so either let
make-archive set it up right, or fix it by hand. It won't be copied.

-- 
  .''`.  ** Debian GNU/Linux ** | Andrew Suffield
 : :' :  http://www.debian.org/ |
 `. `'                          |
   `-             -><-          |

Attachment: tla-rsync-mirror
Description: Perl program

Attachment: signature.asc
Description: Digital signature


reply via email to

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