4

I work for a large bureaucratic (and security paranoid) organisation that provides SVN for its development teams to use.

I am working with a 3rd party vendor (at their site) and we currently share code via SVN export and patch files. The only way I have for transferring files is by a FTP drop box or email. I would like a better way to work.

I am currently lobbying to get some kind of DCVS system setup, ideally cloud hosted. Failing that I want a better way to manage keeping SVN repositories in sync.

In the meantime (or if I fail to get DCVS) how do I keep two SVN repositories in sync? How do I best manage exporting the repository? How do I manage incoming changes?

Dave Hillier
  • 3,940
  • 1
  • 25
  • 37
  • 4
    You could set up git-svn on your side, but you still need to manage getting your changes back into the central svn repo. That's not only how svn works, it's also how "large bureaucratic organisations" work. –  May 01 '13 at 09:43
  • 1
    @gnat I strongly disagree with the duplicate close. This definitely wont work in this situation. How can that work at all given the contraints??? This is SVN-SVN not GIT-SVN. RTFQ – Dave Hillier May 01 '13 at 10:39
  • 3
    How is a cloud-based DVCS going to help if you're limited to email and FTP to bring files into the company? – Caleb May 02 '13 at 00:47
  • @Caleb They have been known to allow SaaS before, provided it meets security requirements. E.g. restricted to certain IP ranges. – Dave Hillier May 02 '13 at 07:50
  • @gnat I don't see any discussion there. It's what you have posted as a question, explaining the rationale. My concern is about the commenting "spree" you are on, some of which are valid, some not. – talonx May 03 '13 at 04:16
  • @talonx Please take meta discussions to [Meta](http://meta.programmers.stackexchange.com/) (or [chat](http://chat.stackexchange.com/rooms/21/the-whiteboard)). If you have a legitimate concern, it'd be a shame to be lost in comments. Also, meta discussions are not what comments are for, let's keep the comments focused on this question and nothing else... – yannis May 03 '13 at 16:33
  • @DaveHillier Close votes? What close votes? I don't see any close votes... ;P – yannis May 03 '13 at 16:34
  • Thanks for the answers everyone. SVN to SVN over a dropbox is fairly undesirable. Instead I've decided to use Git. I've discovered that it's usage is approved in my organisation, although it is unsupported. In the short term, I'm going to use Git Svn and bundles. Hopefully in the long term we can migrate from SVN to Git. – Dave Hillier May 03 '13 at 19:25

3 Answers3

6

The easiest way, if you have the money a bureaucratic and security paranoid org has, is to go to WanDisco and buy their product and time. SVN always had the ability to sync changes (its great for per-commit backups) but wandisco added the ability to do master-master syncs too, so you can have a fully distributed SVN setup.

Running a DVCS setup on the cloud will not get past your paranoid security team, not by a long chalk. Setting a DVCS up for them will probably be difficult too when they realise there is no central server to hold the definitive sources.

You may still have to manage the SVN system as it is - often, 3rd parties do not get direct access to the repo at all. This is for security reasons more than anything and shows you don't 100% trust the other team - which is common, often you won't even know who they are. SVN does have a lot of access controls you can apply to a repo, and I would recommend setting up a repo just for them to commit to, then merge their changes to the in-house repo, which should be a lot easier than ftp patchsets.

gbjbaanb
  • 48,354
  • 6
  • 102
  • 172
  • "when they realise there is no central server to hold the definitive sources" - I wouldn't say so. It's a question of definition. When you setup Gitlab on your own server, then you can define that the Gitlab server holds the "definitive sources" and all developers just host local copies but nothing is definitive, until it pushed to the Gitlab server and you are in control who may push or you don't allow pushes at all and force code to always go over a pull request so the changes can first be reviewed. – Mecki Mar 12 '20 at 17:44
2

Easiest way, if you have location,from which both repos (organisation's and vendor's) are reachable by svn-client is

Create local repository, in this repo map two any nodes to the external repositories (via svn:externals)

If you worry about only content, you can periodically perform sync-merge from Vendor Branch to Organisation Branch (merge transfer all changes from all newest revisions). If both content and history are important, you can perform cherry-pick merge (one revision per merge).

Merged to Organisation Branch (from your POV) and committed will appear in organisation's repository as natural commit

Lazy Badger
  • 1,935
  • 12
  • 16
0

The SVK decentralized version control system uses the Subversion filesystem.

SVK can mirror and operate on Subversion repositories.

David Cary
  • 1,402
  • 13
  • 20
  • would you mind explaining more on what it does and why do you recommend it as answering the question asked? ["Link-only answers"](http://meta.stackoverflow.com/tags/link-only-answers/info "what's this") are not quite welcome at Stack Exchange – gnat May 02 '13 at 17:04
  • SVK seems to be an abandoned project. – bahrep Mar 11 '20 at 16:51