0

My current project has it's master Subversion repository located on a network with restricted access. Most of our developers have access to this network and have full functionality with the code base. I currently have 1 "remote" developer that does not have access to the network. The way I currently manage this is to check out a working copy to a fresh workspace, zip it up and send it off to him to work from. Upon receiving each code dump from me, he puts it in a local Git repo to give himself some version control. When finished with a set of tasks, he zips it back up and sends it to me, and since it still contains the svn metadata, I can synchronize with the repository and commit/merge his changes. And then repeat. This is a huge pain for me, but it is manageable since I only do it for 1 person.

We are currently looking into the possibility of adding several more remote developers that would not have access to the restricted network, so I am looking for alternatives to my current situation. Ideally, I would like to have a remote repository that essentially acts as a branch to the master repository. I've read about svnsync to create a mirror, but it doesn't look like you can commit to the mirror or from the mirror back to the source. I will need to be able to commit to both repos, merge, and reintegrate. I am not opposed to switching from Subversion to Git, but I would like to reserve that as the last solution.

Any suggestions are welcome! Thanks!

schmimd04
  • 1,444
  • 3
  • 14
  • 23

2 Answers2

1

We have a similar setup but using the following:

SVN as the master repository git-svn repository which does two way communication Each remote worker has a git repository and pushes to the git-svn repo

The git-svn repo can then update the master repository, the only person with control over the git-svn repo should be yourself and access to it should be secured as normal. We have found that this works well and allows us to keep the main SVN repository private while allowing remote workers to commit.

Tim
  • 429
  • 3
  • 10
  • Our restricted network is actually a standalone network. I literally have to burn data to cd to move it back and forth. Would I need to burn the entire git-svn repo to cd in order for it to update master? – schmimd04 Feb 29 '12 at 03:37
  • You would have to if you cannot allow remote access to the git-svn repository. Would it not be possible to have git-svn as a bridge? For example it can be accessed remotely but also has access to the SVN repo on your standalone network? – Tim Feb 29 '12 at 03:50
  • @schmimd04 - 1. "standalone network" and "zip it up and send it off to him" poorly correlate 2. Maybe it's time to get link to Net? 3. Working Copy of DVCS (+repo) transportable from-to on flash-drive – Lazy Badger Feb 29 '12 at 03:54
  • Yea that's not possible. Our network cannot have any external connectivity. It's a real pain. Thanks for the suggestion, I'll do some research to see if this will work for us. – schmimd04 Feb 29 '12 at 03:56
  • "allows us to keep the main SVN repository private" - PRIVATE?! You have **N+1 uncontrolled copy** of repo and you name it "private"??? I stunned by the logic – Lazy Badger Feb 29 '12 at 03:57
  • @LazyBadger by "private" just meant within the context of this post, i.e. behind his network and unable to be committed to by an outside authority. Not necessary that the source isn't viewed by others. Which is similar to what the OP is doing now but a much easier to manage method. – Tim Feb 29 '12 at 06:03
1

It sounds like migrating entirely to Git is what you want to do. I would suggest that you take a look at How to use git-bundle for keeping development in sync?. The workflow pattern in that answer seems to be similar to the situation you're describing.

Community
  • 1
  • 1
  • I am selecting this as my answer because I have decided to switch to Git. I have the repo about 90% migrated the way I want it, all that's left is to figure out how to host it and to get my team all learned up on Git! Thanks for the suggestions! – schmimd04 Mar 03 '12 at 03:19