We want to download (export, checkout) a complete repository, and import to a different repository (with all the commit messages) periodically so we can implement a tag/branch strategy.

Background: Our contractor just commits to the trunk and he refuses (let's keep it technical) to create tags to version each new library (so we can keep up with change management).

So we want to import their library every day into our trunk and create tags and branches according to our policies.

Has anyone had this happening before?

  • 3
    Is it worth reminding your contractor that refusing to respect simple source control procedural requests might reduce the likelihood of his contract being renewed?! Jul 9 '09 at 15:24

There are many plausable solutions in the SO question How to synchronize two subversion repositories.

The option that looks like it may apply to you suggests the use of SVK which is basically a decentralized version of svn.


While it's quite unconventional, I believe you should be able to do this with the help of svnadmin.

On the contractor's repository, you can run the following:

svnadmin dump --incremental -r <LOWER REVISION>:<UPPER REVISION> /path/to/bad_repo > dumpfile

then on your repository:

svnadmin load --parent contractors_stuff/ /path/to/your/repository < dumpfile

That will incrementally add revisions from the contractor's repository to the contractors_stuff directory in your real repository. As I said, it should work in theory, but this is definitely not the intended use of this feature. Testing is definitely required on a non-production system first, and it would probably break if you made changes in that part of your real repository.

Ideally you'd tell your contractor to get his act together and lay down the law.

An alternate technical solution would be to use a different version control system such as Mercurial, Git, or other DCVS that would better support this kind of workflow.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.