← Back to team overview

coapp-developers team mailing list archive

Easy way to mirror SVN repo at GitHub



I frequently need to make a GitHub mirror of a project with source
code hosted in SVN,
for example on SF.net. This also applies to many projects I want to
package with CoApp.

I have been testing various workflows and none has proved to be simple and
robust until I found git-svn-mirror tool written in Ruby which mirrors repos
using Git bare repository.

I have never written a line of code in Ruby, but I may want to improve
the tool,
so I decided to port it to Python as pygit-svn-mirror:


Here is the code: https://github.com/mloskot/pygit-svn-mirror

Next, I'm going to test shallow forks of some of C/C++ libraries I use.
My idea is to use the following workflow e.g. for project XYZ hosted
in a SVN repo:

1) Create Git mirror of XYZ at GitHub:        https://github.com/mloskot/xyz
2) Create "private" CoApp fork of the XYZ:  https://github.com/mloskot/coapp-xyz
3) Make coapp-xyz CoApp package
5) Publish coapp-xyz in CoApp repository: https://github.com/coapp-packages/xyz
6) Update XYZ at GitHub with changes from XYZ upstream in its SVN
7) Merge changes from mloskot/xyz to mloskot/coapp-xyz
8) Republish mloskot/coapp-xyz at coapp-packages/xyz
9) Repeat the cycle from 6 to 8

I think it would be easy, manageable and safe way to maintain CoApp packages.
Having "private" CoApp package at mloskot/coapp-xyz will work like
CoApp development
version (unstable/testing) of package. Once it is ready, it will be
pushed to the official
packages depot.

Does it make sense?
Would anyone suggest improvements to this workflow?

Best regards,
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org
Member of ACCU, http://accu.org

Follow ups