### Migrating SVN content from one hosting to another (svnsync) ###
       
       
       Recently, I migrated one of my OSS projects from SourceForge to OSDN. This
       required migrating the SVN tree with its entire history. I initially thought
       this would be either very difficult or impossible, but then I learned about
       svnsync.
       
       The svnsync utility is a specialized tool that is able to synchronize one svn
       repository to another, preserving the original commits with their proper
       timestamps, authors, etc. The operation turned out to be very easy.
       
       1. Allow revision properties to be modified on the target repository. On a
          vanilla SVN server this would require to create a 'pre-revprop-change' hook
          that exits with a 0 return code.
          On the OSDN hosting it is as easy as setting up a single checkbox named
          "Allow to modify revision properties for projects members" in the
          Subversion admin screen.
       
       2. Initialize the target repository. This will set up the target repository so
          it knows what is the original location of the code:
          $ svnsync init svn://svn.osdn.net/svnroot/amb svn://svn.sf.net/p/amb/code
          Copied properties for revision 0.
       
       3. Execute the synchronization - this will clone every commit made on the
          source repository to the target repository:
          $ svnsync synchronize svn+ssh://mateuszviste@svn.osdn.net/svnroot/amb
          Committed revision 1.
          Copied properties for revision 1.
          Transmitting file data ...
          Committed revision 2.
          Copied properties for revision 2.
          Transmitting file data ..
          Committed revision 3.
          (etc)
       
          The above step may take a while, it's hard work.
       
       4. Disable revprop modification on the target repository.
       
       
       All done! Now, it is possible to checkout the new repository and use it as
       the new location for the project's source code.
       
       $ svn co svn+ssh://mateuszviste@svn.osdn.net/svnroot/amb/ amb