On 7/26/2011 8:44 AM, Stefan Sperling wrote:
On Tue, Jul 26, 2011 at 08:35:31AM -0700, David Chapman wrote:
If the processor architectures differ, copying the repositories
directly won't work unless changes to the repository format have
been made recently. I had a problem when copying a repository from
a 64-bit x86 machine to a 32-bit x86 machine, for example.  (I think
this was in 1.4.x, but it was years ago and I don't remember the
details.)  Solaris 10 suggests a SPARC machine as the source.
Because of the byte ordering difference, I'd expect major trouble
when copying a repository directly from a SPARC machine to an x86
machine.
This only applies to repositories using the BDB backend.
There is no such problem with the FSFS backend because it uses flat files.



The bad copy was a FSFS repository. IIRC, the problem was writing binary data (e.g. integers) into files. The 64-bit machine wrote 64-bit integers into some of the files, and the 32-bit machine got confused.

Unless FSFS writes no binary data into its files, or else it is careful to do so in a platform-independent matter, there will be trouble. Not being an official Subversion developer, I can't comment on the internals of the FSFS format, but I would be very surprised if its files were truly platform-independent because this would slow down repository operations. Given that there is an official portable transfer file format (the dump file), I would expect the Subversion developers to use more-efficient non-portable code within the repository files.

You can certainly try to copy one repository directly from one platform to the other, then run "svnadmin verify". That *should* tell you if there was a problem. But I wouldn't trust anything worth money on an inter-platform repository file copy.

--
    David Chapman         dcchap...@acm.org
    Chapman Consulting -- San Jose, CA

Reply via email to