Seems like a simple problem:
I want to somehow (from inside, most likely) take all the changes in one, and apply them to the other. And vice versa. Sounds simple, and I assume that the likes GIT can do this, but we are using SVN.
Anyone done this? I don't mind it being a manual process - there are only a couple of external people, and they don't need updates to-the-minute, two or three times a day would do.
I believe apache.org does this, but I can't find docs on HOW they do this. There are a couple of products out there which do it (well, one), but I'd love to know if anyone has a nice, clean way to do it without them. svnsync does this, just only in one direction (master-slave)
Happy to have it run on windows, Linux or Mac, as we have all of them. Windows and Mac preferred though.
Help! :) :)
[update] after 12 months of messing around (and not needing this in the end), the correct answer is, in my opinion, correct. Use git - have one repo which pulls from SVN-A, then push to a new git repo, then push from there to SVN-B. Should work :)
I'd recommend SVK or git-svn.
Both of these let you create an external mirror of your svn repository, and allow the external devs to make commits directly to the external mirror. You can then pull and push changes from this external mirror to your internal master repo.
git-svn would (I think) require the external developers to use git. I prefer it, but I'd be reluctant to push this on others.
SVK, however, allows the external developers to continue using svn. Since the internal repo is only accessible internally, an internal account or user would have to handle the periodic syncronization (a cron job would probably work).
Here's an extended howto on the SVK wiki: UsingSVKAsARepositoryMirroringSystem
Simplicity is usually the best way, and it sounds like you already have a simple solution: Use the SVN Repository outside the firewall.
You've already said machines inside the firewall can reach it, and obviously machines outside can reach it... so that's everyone, so what justification do you have for a second SVN repository inside the firewall? If it's just as a back-up, then just back-up the one on the outside.
Let me know if I'm missing part of your requirements.
Another thought... if you have both internal and external SVN instances... what is to stop them both giving out the same changelist ID at the same time, for different purposes? If you're seeking a de-centralised solution you should look towards GIT rather than SVN.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With