Migrating VCS: Difference between revisions

From ASCEND
Jump to navigation Jump to search
No edit summary
No edit summary
Line 42: Line 42:
This final step is the one that takes the time -- took about 10 minutes for our repository of ~3000 commits. This process was tested with a 'linear' repository -- no branches in the original bzr repository. The resulting svn repository has several 'tags' but no 'branches', as expected.
This final step is the one that takes the time -- took about 10 minutes for our repository of ~3000 commits. This process was tested with a 'linear' repository -- no branches in the original bzr repository. The resulting svn repository has several 'tags' but no 'branches', as expected.


== To recreate a branch in SVN when only the HEAD code from the branch is available ==
After a server failure, we lost the revision history of several branches in our repository, but because of working copies on other machines, we still had the HEAD revision code.
To recreate a branch and import this old working-copy code (assumed to be located in <tt>~/oldwc</tt>), you can use the following steps:
svn cp http://example.com/svn/repo/trunk http://example.com/svn/repo/branches/b1
svn co http://example.com/svn/repo/branches/b1
cd b1
[[Category:Miscellany]]
[[Category:Miscellany]]

Revision as of 01:44, 5 March 2015

Some notes on migrating between version control systems. WORK IN PROGRESS.

To migrate a Bazaar repository to Git

Source: http://librelist.com/browser/cville/2010/2/9/migrate-repository-bzr-to-git/

To convert a bzr repository (repo-bzr) to git:

cd repo-bzr
git init &&
  bzr fast-export `pwd` | git fast-import &&
  rm -r .bzr &&
  git reset HEAD

This will take your current working directory, build git history, and destroy bzr history. Do not run this on any important bzr branch, as it will get eaten.

But I wanted a 'bare' repository, for future reasons:

cp -R repo-bzr repo.git
cd repo.git
git init --base
bzr fast-export `pwd` | git fast-import
rm -r .bzr
git reset HEAD

Try to replay a Git repo into a new Subversion repo

Source: http://stackoverflow.com/questions/498110/converting-a-repository-from-git-to-subversion

This approach uses SubGit, which is free to use for open source/academic or 'import' applications.

Assume we have a 'bare' Git repository at /path/to/repo.git:

svnadmin create svn-repo
subgit configure svn-repo

Edit the svn.repo/conf/subgit.conf file and in section [git "default"], adjust the repository to give repository = /path/to/repo.git. Then,

subgit install svn.repo

This final step is the one that takes the time -- took about 10 minutes for our repository of ~3000 commits. This process was tested with a 'linear' repository -- no branches in the original bzr repository. The resulting svn repository has several 'tags' but no 'branches', as expected.

To recreate a branch in SVN when only the HEAD code from the branch is available

After a server failure, we lost the revision history of several branches in our repository, but because of working copies on other machines, we still had the HEAD revision code.

To recreate a branch and import this old working-copy code (assumed to be located in ~/oldwc), you can use the following steps:

svn cp http://example.com/svn/repo/trunk http://example.com/svn/repo/branches/b1
svn co http://example.com/svn/repo/branches/b1
cd b1