Summary of the question:
I came to realise as I wrote this out that there is a lot of detail, so here's the headline:
In writing this, I've also come to realise that what I'm asking to do is really quite complex and may simply not be possible...
The Detail:
I work with a team of people using an SVN Repository. A number of us have started using Git SVN and are now reaping the benefits of using Git locally, branching at whim, merging into our local Masters as necessary and then dcommitting back to SVN. This works well (although I realise we are not reaping all the benefits of a pure Git solution).
I have recently started using a private BitBucket Git Repository as a remote for the Master, so I can easily transfer code to and from other places. The workflow is this:
Okay, there are a few steps but it works well for me. But, a number of my colleagues want to start doing the same sort of thing. What is more, we want to be able to use our BitBucket Git repo without the encumbrance SVN.
Some examples of the sorts of things we are considering:
But, assuming one of us has done this, what then happens for the rest of the team? If they pull from BitBucket Master, they'll get the changes. But, if they rebase from SVN, they'll get the changes too.
What happens if they do both? And this is just one possible snag. I can think of other sets of steps were this could all get into a real mess.
Unfortunately our Continuous Integration workflow is tied to SVN, as is the rest of the business. Therefore we don't really have the option of moving to Git in it's entirety. We also can't access our SVN repository from outside the company.
Have a look at SubGit project designed for those who wants to use Git and SVN repositories at the same time. If you have access to your SVN server, you just run
$ subgit install path/to/svn/repository
After that a Git interface for the repository is created. Every push to the Git repository is translated to SVN and vice versa. You just setup access to that newly created Git repository.
Some git-svn-based scripts for SVN<->Git mirror propose similar functionality but they have disadvantages compared to SubGit:
The advantage of git-svn is to have a possibility to keep Git mirror in another machine; but it pays for that with concurrency-safety (being on the same machine is a condition of locking both SVN and Git repositories for a translation period for short time).
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