Did you work in a company so much attached to SVN that it seems they will continue with it until the end of the world? And cherry on the cake, the projects arborescence is so touchy they use deep nested svn:externals. This project is my try to perform a slow but sure migration from SVN to GIT in this context.
Svn2GitExt.py is a python script which will automate SVN arborescence cloning into GIT, using git svn to create a bidirectional synchronizing way, and git subtrees to emulate svn:externals projects into the main project.
$ ./Svn2GitExt.py create -d -s -b -u -p -a => Create a GIT clone from into , using main and intermediate repositories hosted on BitBucket project This command will begin creating a GIT clone from a local Subversion working directory.
- This directory must be up to date with the latest SVN revision, for a simple reason: it will be diffed against the final GIT clone of the main project.
- The should not exist, and the basename of its path will be used as the main project name, and subtree project names derived from svn:externals will be construct on this model <main_project_name>-ext-<external_index>-. All GIT repositories (main and subtrees) will be created in the dirname of .
- must be the URL to the BitBucket Project where you want to store your incoming GIT repositories. The REST API 1.0 must be supported by your BitBucket server.
- is the correspondance file used by git-svn to translate Subversion login to GIT one ("User Name user.name@company.domain")
$ ./Svn2GitExt.py update -d -s -b -u -p => Create a GIT clone from into , using main and intermediate repositories hosted on BitBucket project This command will begin creating a GIT clone from a local Subversion working directory.
- This directory must be up to date with the latest SVN revision, for a simple reason: it will be diffed against the final GIT clone of the main project.
- The should not exist, and the basename of its path will be used as the main project name, and subtree project names derived from svn:externals will be construct on this model <main_project_name>-ext-<external_index>-. All GIT repositories (main and subtrees) will be created in the dirname of .
- must be the URL to the BitBucket Project where you want to store your incoming GIT repositories. The REST API 1.0 must be supported by your BitBucket server.
$ ./Svn2GitExt.py purge -b -u -p => Deleted all repositories from a specifid Bitbucket project accessible from with a browser, using credentials /