Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following steps were followed for the dry run migration of the fcrepo repository. Similar steps will be followed for the final migration of each repository.

1. Run the Initial Conversion

...

Because git stores a name and email address per commit, the conversion needs to know this information for each subversion userid.

...

Now the initial converstion can be run with git-svn. It takes a very long time to run (about half a day), so should be run with screen or nohup, like this:

Code Block
nohup git svn clone file:///path/to/svnrepo --prefix=svn/ --authors-file=authors.txt --trunk=fedora/trunk --tags=fedora/tags --branches=fedora/branches 1.initial-conversion&

2. Abandon Subversion

Install the git-svn-abandon scripts, then run the following:

Code Block
cp -a 1.initial-conversion 2.abandoned-svn
cd 2.abandoned-svn
git svn-abandon-fix-refs
git svn-abandon-cleanup
git config --remove-section svn
git config --remove-section svn-remote.svn
rm -rf .git/svn .git/logs/refs/remotes/svn .git/refs/remotes/svn

3. Clean up Refs

Remove useless tags:

Code Block
git tag -d NA1-0 2.2.4-patch1 release-2.2.4-patch1

Rename original release tags using git convention (preserves original tag dates):

Code Block

git tag -f v1.0 fedora-1-0
git tag -f v1.1 fedora-1-1
git tag -f v1.1.1 fedora-1-1-1
git tag -f v1.2 fedora-1-2
git tag -f v1.2.1 fedora-1-2-1
git tag -f v2.0 fedora-2-0
git tag -f v2.1 fedora-2-1
git tag -f v2.1.1 fedora-2-1-1
git tag -f v2.1b fedora-2-1b
git tag -f v2.2 fedora-2-2

git tag -f v2.2.1 release-2.2.1
git tag -f v2.2.2 release-2.2.2
git tag -f v2.2.3 release-2.2.3
git tag -f v2.2.4 release-2.2.4
git tag -f v3.0 release-3.0
git tag -f v3.0b1 release-3.0b1
git tag -f v3.0b2 release-3.0b2
git tag -f v3.1 release-3.1
git tag -f v3.2 release-3.2
git tag -f v3.2.1 release-3.2.1
git tag -f v3.3 release-3.3
git tag -f v3.3.1 release-3.3.1
git tag -f v3.4 release-3.4
git tag -f v3.4-RC1 release-3.4-RC1
git tag -f v3.4.1 release-3.4.1

Remove old, redundant tags:

Code Block

git tag -d `git tag|grep release`
git tag -d `git tag|grep fedora`

Remove old, unused branches:

Code Block

git branch -D `git branch|grep -v master|grep -v maintenance-3.4|grep -v maintenance-2.2`

Free unused space in the repository:

Code Block

git gc --prune=now
git prune

Avoid 'local uncommitted change' errors later

Code Block

git status

4. Separate Recent History

TBD

5. Separate Ancient History

TBD