Search code examples
svnversion-controldata-synchronization

Periodically copy revisions from one SVN repository to another active SVN repository


My company maintains two SVN repositories, Repository 1 and Repository 2:

  1. This repository has multiple projects in it, and is only accessed by the developers within the company. Access is through HTTPS and authentication is through the Windows domain.
  2. This repository has a single project in it, and is accessed by the developers within the company, and our client's developers. Access is through svn:// and authentication is through the passwd file.

We have some code in a folder in Repository 1 that we would like to be downloaded to users of Repository 2. The obvious answer is to use SVN Externals, but as far as I can see, that would need the client's developers to have accounts on our domain, and our IT people don't like that.

Therefore, the only solution I can see is some kind of cron job that runs periodically to copy the necessary files from Repository 1 to 2. I've found a tool called Tailor which claims to do what I need, but so far I've not managed to get it to work correctly.

Before I spend more time trying to get Tailor to work, does anyone have any suggestions of another approach? My last resort is to knock up a program to do it for me, which shouldn't be too hard, but it's always best to use an existing app if there is one!

Thanks in advance for any help/pointers!

Rich


Solution

  • If SVN externals would work, but the only stumbling block is access rights, then why not make a clone of the repository and point the externals to that?

    SVN now has good support for mirroring:

    https://www.opends.org/wiki/page/MirroringASubversionRepository

    You can lock down the mirror repository using any authentication scheme you like, for example, anonymous read-only access.

    However, you need to ensure that the only thing that updates the mirror is the svn sync command - the users of repository 2 won't be able to commit changes back to repository 1.

    This page has some very useful information:

    http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt