At work we keep all out clients projects in subversion repositories and are not going to change this in the foreseeable future. A lot of our projects use the same plugins/modules and we also open source some of these and share them on our own github accounts.
What I'd like to do is:
- Maintain a client project with all the code in subversion
- Any dev add plugins / modules from any remote / github repo to the project
- Any dev be able to pull changes made to the github repos and add them to the project's svn repo (on a project by project basis, not all at once)
- Be able to make project specific tweaks to the code pulled from the github repos that are not to be pushed back to github or impact the ability to pull changes from github
- Devs with required ssh keys can push local changes to the code on github back up to github so any bug fixes or new features that would be of benefit to all projects using the plugin / module can pull them down too.
Is this possible? If so, how?
Can I do this with a combination of:
- vendor branching in the svn repos with a vendor for each of the external github repos to keep the separation of the re-usable code on github and the tweaked code for the project.
- committing the .git folder into the vendor branch in the svn repo to enable anyone to pull the latest changes.