Paul Hammant <p...@hammant.org> writes:

> I'm making each revision with..
>
>       dd if=/dev/zero bs=1M count=500 2>/dev/null >
> path/to/file/under/versionControl.dat
>
> .. which is random enough to completely thwart delta analysis of the file.
> That's slow enough in itself, but I'm only checking the time of the commit.

The standard client always sends deltas even for cases like yours where
the delta is not really an advantage. On receiving the delta the server
has to first reconstruct the full text and then construct a second delta
to store in the repository.

You can make commits a bit faster by using svnmucc without a working
copy, the svnmucc client always sends a delta against an empty file
which is faster to calculate than the standard client delta against the
previous file contents:

  svnmucc put some/file URL

You can make commits even faster by enabling SVNAutoversioning on the
server and using curl as your client as then the client doesn't
calculate delta at all:

  curl -XPUT @some/file URL

The curl commit will still involve calculating a delta on the server.

On my machine:

              dd:  3.3 sec 
      svn commit: 37   sec
  svnmucc commit: 26   sec
     curl commit:  9.5 sec

-- 
Philip

Reply via email to