Recent Changes

2021-07-26
2021-03-17
2021-03-08
2021-03-03
2021-01-22
2021-01-21

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://username@svn.osdn.net/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 username@git.osdn.net:/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

You can use svnsync for copying repository to subversion server on OSDN.net, please try it.

You can use svnsync for copying repository to subversion server on OSDN.net.

When the origin repository is huge or network is unstable, svnsync may be fail with timeout. If you can not clear the problem, please contact us via support request ticket likes bellow:

  • Please run svnadm dump command on your local repository to create a svn dump file. Note that please do not run svnadmin dump on PowerShell of Windows. PowerShell automaticaly convert file stream into UCS2 encoding, it is not be able to handle svnadmin on other OSes. We do not accespt UCS2 encoded dump file.
  • If the dump file is small (smaller than 10MB or so), you can attach it directly to the ticket.
  • The dump file is large, you should put it on the some file sharing service (e.g google driver etc..) and tell us the URL of the file, or put the dump file to your home directory on OSDN shell server and tell us the filename.
  • Optionaly, you can tell us some file hash (e.g sha512sum etc...) on the ticket to detect file is fine/broken.
  • You should tell us the target project name on the ticket.

We will restore the dump file to target repository within a few weekdays. Please note that the contents of the repository will be reset before restoreing. All commits before restoreing will be deleted.

Migration to Git

If you are trying to execute a migration that doesn't go through with git push, consult us via ticket.