Migration of Data Between Different Code Management Systems
At OSDN, we support data migration between different code management systems.
There is no automatic migration via web. Project manager must login to make support request, and will be asked to enter the project name and necessary information. OSDN staff will respond upon receiving the request.
Migrating to Other SCM System on OSDN
Migration from CVS to Subversion
In the support request, enter the name of the project you want to migrate. OSDN staff will convert it on the server side. But there are situations where it can not be converted due to how CVS is being used by the project.
The lay out of the converted Subversion repository will look something like below.
/svnroot/yourproject /svnroot/yourproject/yourmodule1 /svnroot/yourproject/yourmodule1/branches /svnroot/yourproject/yourmodule1/tags /svnroot/yourproject/yourmodule1/trunk /svnroot/yourproject/yourmodule2 /svnroot/yourproject/yourmodule2/branches /svnroot/yourproject/yourmodule2/tags /svnroot/yourproject/yourmodule2/trunk
If you wish to employ a different form of conversion, read “FAQ on CVS#Q: Is there a way to make a local back up of the entire CVS repository?” and follow the instructions to get the whole repository by rsync, and then create a dump file for Subversion.
You may also want to read “How to use Subversion”.
Migration from Subversion to Git
1. Create Git Repository on OSDN
First, let's create a Git repository on OSDN side. From project “Admin” menu, choose “Select Features”. Then click on “Git” to put a check mark and click on the “Update” button to enable the Git feature. Once it's enabled, from the source code menu, choose “Git Admins” to go to it's page.
Fill in the blanks for repository name and description, then click on the “Create new Git repository” button to create. (The instructions below use “test1” as the repository name.)
It will take a few minutes for the repository ready to be used, so let's move on to the next process.
2. Copy Contents of Subversion Repository to Working Repository
Let's copy the contents of the Subversion repository and make a Git working repository. First, you'll create a working directory and then add changes to the current directory.
mkdir -p ~/work/GIT cd ~/work/GIT
Use git svn command like the one below to execute. (In place of username/projectname, imagine having your user name and project name there.)
git svn clone -s svn+ssh://email@example.com/svnroot/projectname/
You will have your Git repository created in “projectname”. If the structure doesn't follow the general style of having trunk, branches, tags right under the URL of Subversion repository, then take off -s (and if necessary, assign the place, for example “tag”, for option.)
Next, cd to the repository which has just been cloned, and register the Git repository created on OSDN as the origin.
cd projectname git remote add origin firstname.lastname@example.org:/gitroot/projectname/test1.git
3. Push to OSDN repository
To reflect what was copied on the working directory to OSDN repository, let's go through the process of pushing. For all contents including tags and branches to be included, we'll be using the --mirror option.
git push --mirror origin master
Migration from Foreign Repository to OSDN
Migration to Subversion
With the local repository, use svnadmin dump command to create a dump file. Attach the dump file to a ticket or inform us of the URL.
Migration to Git
If you are trying to execute a migration that doesn't go through with git push, consult us via ticket.