svnvisualsvn-servervisualsvnsvnsync

SVN svnsync all repo project


I have two VisualSVNServer: master (http://example.com/svn) and a mirror (backup)

In each server have the same repository structure with 100 project (20 GB):

D:\Repositories
               \MyProject1
               \MyProject2
               \MyProjectN

at the moment I sync the mirror server manually for each single project, eg:

svnsync synchronize http://127.0.0.1/svn/MyProject1 http://example.com/svn/MyProject1

svnsync synchronize http://127.0.0.1/svn/MyProject2 http://example.com/svn/MyProject2

svnsync synchronize http://127.0.0.1/svn/MyProjectN http://example.com/svn/MyProjectN

it is possible syncronyze all project in the mirror with one command?


Solution

  • If http://127.0.0.1/svn/ is a repository, you can use svnsync synchronize http://127.0.0.1/svn/MyProject1 http://example.com/svn.

    However, I suspect that this is not the case, and http://127.0.0.1/svn/ is actually a virtual directory which is a common parent for two independent repositories. If this is the case, you cannot do this. Subversion simply doesn't allow for it.

    Edit: Based on your subsequent edit, you have multiple repositories being served from a common parent (root). This is the second paragraph's scenario. You cannot sync all repositories with a single svnsync - you must do each individually.

    So, how can you tell the difference? Run svn info http://127.0.0.1/svn/MyProject1 and svn info http://127.0.0.1/svn/MyProject2 If both return the same value reported for Repository Root, then the first paragraph applies. If you get the same URL back as the Repository Root (IOW, Repository Root is http://127.0.0.1/svn/MyProject1 for MyProject1 and http://127.0.0.1/svn/MyProject2 for MyProject2, then they're separate repositories.